Ls

Keywords: Ls, Unix

ls es una instrucción unix que muestra el listado de un directorio o fichero. Los resultados se muestran ordenados alfabéticamente.

El nombre ls proviene de la palabra list, listado en inglés.

Los archivos y directorios cuyo nombre comienza con . (punto) no se muestran con la instrucción ls, por lo que se suelen denominar "ficheros ocultos". El parámetro -a de ls inhibe este comportamiento, mostrando todos los ficheros y subdirectorios, incluso los que comienzan con punto.

Sintaxis:

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 ficheros y subdirectorios especificados en la línea de instrucción. Para los ficheros muestra el nombre solamente (o más información si se emplea algún argumento como -l ) y para los subdirectorios muestra todos los ficheros incluidos en el subdirectorio. Este comportamiento distinto de ls ante ficheros y subdirectorios puede igualarse usando el parámetro -d, que hace que se trate a los subdirectorios como ficheros. Nótese que pueden ponerse directorios y ficheros en la línea de instrucción en cualquier orden.

Modificadores más comunes:

-l muestra un listado en el formato largo, con información de permisos, número de enlaces asociados al fichero, usuario, grupo, tamaño y fecha de última modificación además del nombre.
-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 ficheros 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 fichero referenciado en vez de los del link.
-1 muestra el listado en una sola comluna. Sin la opción -1 el listado se muestra en

varias columnas, tantas como permita el ancho de la términal (generalmente controlado con la variable de entorno $COLUMNS).

-i muestra el número del i-nodo antes del nombre de fichero.
-m muestra los ficheros en una línea y separados por comas.
-R hace un listado recursivo. Lista primero los ficheros del directorio en curso, luego los de los subdirectorios de éste, luego los de los subdirectorios contenidos en ellos (nietos) y así sucesivamente.
--color muestra cada tpo de fichero de un color distinto: un color para los directorios, otro para los ficheros 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.

Al igual que en la mayoría de instrucciones unix, los parámetros 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

Un listado del directorio actual se obtendría así:

 ls
 Manual.txt.gz  fichero1.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 fichero1.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 fichero1.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, incluyendo 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 indice.datos
 37845 -rw-r--r--  1 user1 grp1 46967296 May 13 22:34 datos2.txt
 

Si se usa la opción -d se muestra sólo 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
 

Keywords: Ls, Unix