ls

comando del sistema operativo Unix y derivados

(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]

Captura de pantalla de comando ls -la

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
  1. a b MacKenzie,, p. 85.

Bibliografía

editar

MacKenzie, David (Febrero de 2020). «GNU Coreutils». Gnu.org. Consultado el 1 de junio de 2020. 

Enlaces externos

editar