ls
(del inglés list, cuya traducción es lista, listado o listar) es un comando del sistema operativo Unix y derivados que muestra un listado con los archivos y directorios de un determinado directorio. Los resultados se muestran ordenados alfabéticamente.[1]
Los archivos y directorios cuyo nombre comienza con . (punto) no se muestran con la instrucción ls, por lo que están ocultos. La opción -a de ls inhibe este comportamiento, y muestra todos los archivos y subdirectorios, incluso los que tienen punto.
ls es una de las herramientas más básicas de los sistemas operativos Unix, por lo que forma parte del paquete GNU Coreutils.[1]
Sintaxis
[editar]- ls : sin argumentos muestra el listado del directorio actual (véase la variable de entorno pwd).
- ls archivo1 archivo2 archivo3 ... subdir1 subdir2 subdir3 ... : muestra un listado de los archivos y subdirectorios especificados en la línea de órdenes. Para los archivos muestra el nombre solamente (o más información si se emplea alguna opción como -l ) y para los subdirectorios muestra todos los archivos incluidos en el subdirectorio. Este comportamiento distinto de ls ante archivos y subdirectorios se puede igualar usando el parámetro -d, que hace que se trate a los subdirectorios como archivos. Nótese que pueden ponerse directorios y archivos en la línea de órdenes en cualquier orden.
Opciones más comunes
[editar]- -l muestra un listado en el formato largo, con información de permisos, número de enlaces asociados al archivo, usuario, grupo, tamaño y fecha de última modificación además del nombre.
- -h con -l imprime el tamaño de los archivos de forma entendible para los humanos (ej. 1K 234M 2G).
- -d muestra solamente el nombre del subdirectorio, sin entrar en él ni dar un listado del contenido.
- -t muestra ordenado por la fecha de última modificación.
- -c muestra ordenado por la fecha de última modificación del estado del archivo.
- -r cuando el listado se hace por orden temporal, los archivos más recientes van al principio. Si se indica la -r se invierte el orden, mostrando los más recientes al final.
- -L en los enlaces simbólicos, muestra los datos del archivo referenciado en vez de los del link.
- -1 muestra el listado en una sola columna. Sin la opción -1 el listado se muestra en varias columnas, tantas como permita el ancho de la terminal (generalmente controlado con la variable de entorno $COLUMNS).
- -i muestra el número del i-nodo antes del nombre de archivo.
- -m muestra los archivos en una línea y separados por comas.
- -R hace un listado recursivo. Lista primero los archivos del directorio en curso, luego los de los subdirectorios de éste, luego los de los subdirectorios contenidos en ellos (nietos) y así sucesivamente.
- -s muestra delante del nombre del fichero el tamaño en kilobytes del mismo.
- --color muestra cada tipo de archivo de un color distinto: un color para los directorios, otro para los archivos regulares, otro para los enlaces simbólicos, otro para los sockets, otro para las tuberías FIFO, etc. Este parámetro no se acepta en todas las versiones de ls y, por supuesto, requiere que la terminal sea capaz de mostrar distintos colores o intensidades.
- -a muestra los archivos ocultos.
Al igual que en la mayoría de las órdenes unix, las opciones se pueden agrupar, de manera que es lo mismo poner ls -li que ls -l -i . O también es lo mismo ls -ltra que ls -l -t -r -a
Ejemplos
[editar]Un listado del directorio actual se obtendría así:
$ ls Manual.txt.gz archivo1.txt hosts servidores syslog.0
El listado largo sería:
$ ls -l total 1424 -rw-r--r-- 1 mail bin 40661 May 13 22:27 Manual.txt.gz -rw-r--r-- 1 nobody nogroup 0 May 13 22:26 archivo1.txt -rw-r--r-- 1 root root 825 May 13 22:26 hosts lrwxrwxrwx 1 user1 grp1 5 May 13 22:31 servidores -> hosts -rw-r----- 1 sys sys 1405600 May 13 22:27 syslog.0
Y con archivos ocultos:
$ ls -la total 1444 drwxr-xr-x 3 user1 grp1 4096 May 13 22:34 . drwxrwxrwt 56 root root 8192 May 13 22:35 .. -rw-r--r-- 1 user1 grp1 176 May 13 22:29 .data -rw-r--r-- 1 mail bin 40661 May 13 22:27 Manual.txt.gz -rw-r--r-- 1 nobody nogroup 0 May 13 22:26 archivo1.txt -rw-r--r-- 1 root root 825 May 13 22:26 hosts lrwxrwxrwx 1 user1 grp1 5 May 13 22:31 servidores -> hosts -rw-r----- 1 sys sys 1405600 May 13 22:27 syslog.0
El listado del contenido del directorio datos en formato largo, entre ellos el número de i-nodo al principio de cada línea y ordenados por fechas en orden descendente:
$ ls -litr datos total 45928 37844 -rw-r--r-- 1 user1 grp1 30 Jan 23 23:01 datos1.txt 37847 -rw-r--r-- 1 user1 grp1 460 Apr 13 21:36 índice.datos 37845 -rw-r--r-- 1 user1 grp1 46967296 May 13 22:34 datos2.txt
Si se usa la opción -d se muestra solo la información del directorio:
ls -lid datos 37843 drwxr-xr-x 2 user1 grp1 4096 May 13 22:35 datos
El listado largo de todos los archivos cuyo nombre empiece por d y luego contenga una t:
$ ls -l d*t* -rw-r--r-- 1 user1 grp1 30 Jan 23 23:01 datos1.txt -rw-r--r-- 1 user1 grp1 46967296 May 13 22:34 datos2.txt
Ordenar por fecha descendentemente
ls -lt
Ordenar por fecha ascendentemente
ls -ltr
Ordenar por tamaño descendentemente
ls -l --sort=size
Ordenar por tamaño ascendentemente
ls -lr --sort=size
Referencias
[editar]- ↑ a b MacKenzie,, p. 85.
Bibliografía
[editar]MacKenzie, David (Febrero de 2020). «GNU Coreutils». Gnu.org. Consultado el 1 de junio de 2020.