Saltar la navegación

ls

El comando ls sirve para mostrar por la salida estándar (la pantalla por defecto) el contenido de los directorios o información de los ficheros. Su sintaxis general es:

ls [opción...] [ { fichero | directorio }... ]

Si no especificamos nada, muestra en columnas el contenido del directorio de trabajo, sin los ficheros ocultos (ficheros con un nombre que empieza por el carácter punto); para que estos últimos se muestren hay que especificar la opción -a:

$ ls
bin         carta2.txt  Documentos  Escritorio  Música      Público  Vídeos
carta1.txt  Descargas   Documents   Imágenes    Plantillas  VB
$ ls -a
.              Descargas        Imágenes          .pulse-cookie
..             Documentos       .lesshst          .sudoku
.aptitude      Documents        .local            .thumbnails
.bash_history  Escritorio       .mission-control  VB
.bash_logout   .gconf           .mozilla          .vboxclient-clipboard.pid
.bashrc        .gksu.lock       Música            .vboxclient-display.pid
bin            .gnome2          .plan             .vboxclient-draganddrop.pid
.cache         .gnome2_private  Plantillas        .vboxclient-seamless.pid
carta1.txt     .gstreamer-0.10  .profile          Vídeos
carta2.txt     .gtk-bookmarks   .project          .xsession-errors
.config        .gvfs            Público           .xsession-errors.old
.dbus          .ICEauthority    .pulse

Para mostrar más información de los fichero es necesario generar un listado largo utilizando la opción -l:

$ ls -l
total 92
drwxr-xr-x 2 usuario usuario  4096 ago 30 12:49 bin
-rw-r--r-- 1 usuario usuario 20981 ago 30 20:08 carta1.txt
-rw-r--r-- 1 usuario usuario 20981 ago 30 20:08 carta2.txt
drwxr-xr-x 2 usuario usuario  4096 jul 10 19:34 Descargas
drwxr-xr-x 2 usuario usuario  4096 jul 13 21:37 Documentos
drwx------ 3 usuario usuario  4096 jul 13 22:09 Documents
drwxr-xr-x 2 usuario usuario  4096 jul 10 19:34 Escritorio
drwxr-xr-x 2 usuario usuario  4096 ago 26 20:41 Imágenes
drwxr-xr-x 2 usuario usuario  4096 jul 10 19:34 Música
drwxr-xr-x 2 usuario usuario  4096 jul 10 19:34 Plantillas
drwxr-xr-x 2 usuario usuario  4096 jul 10 19:34 Público
drwxr-xr-x 2 usuario usuario  4096 jul 13 14:49 VB
drwxr-xr-x 2 usuario usuario  4096 jul 10 19:34 Vídeos

Los datos del listado largo son, por orden:

  1. El primer carácter indica el tipo de fichero:
    • - para los ficheros normales (texto, programas, imágenes, etc.).
    • d para los directorios.
    • l para los enlaces simbólicos.
    • c para los dispositivos de caracteres (teclado, pantalla, etc.).
    • b para los dispositivos de bloque (discos, etc.).
  2. Permisos del fichero (los 9 caracteres siguientes al anterior).
  3. Número de enlaces duros.
  4. Usuario dueño del fichero.
  5. Grupo del fichero.
  6. Tamaño en bytes del fichero.
  7. Fecha de la última modificación (mtime).
  8. Nombre del fichero.

Para listar los datos de un directorio y no su contenido, necesitamos usar la opción -d:

$ ls -l tmp
total 28
-rw-r--r-- 1 usuario vboxsf 68 sep  8 23:05 f1.txt
-rw-r--r-- 1 usuario vboxsf 79 sep  8 22:28 f2.txt
-rw-rw-rw- 1 usuario vboxsf 10 sep  9 08:30 f3.txt
-rw-r--r-- 1 usuario vboxsf 48 sep  7 13:10 f4.txt
-rw-r--r-- 1 usuario vboxsf 24 sep  8 20:36 f5.txt
-rw-r--r-- 1 usuario vboxsf 78 sep  8 22:37 f6.txt
-rw-r--r-- 1 usuario vboxsf  6 sep 11 20:37 patrones
$ ls -ld tmp
drwsr-sr-x 2 usuario vboxsf 4096 sep 11 20:36 tmp

 Podemos ver los i-nodos de los ficheros con la opción -i:

$ ls -i carta*
132797 carta1.txt  132551 carta2.txt

En el listado largo, la fecha que aparece por defecto es la mtime, si queremos ver la atime:

$ ls -lu carta*
-r--r--r-- 1 usuario usuario 20981 ago 30 20:25 carta1.txt
-r--r--r-- 1 usuario usuario 20981 ago 30 20:24 carta2.txt

Y para ver la ctime:

$ ls -lc carta*
-r--r--r-- 1 usuario usuario 20981 ago 30 20:26 carta1.txt
-r--r--r-- 1 usuario usuario 20981 ago 30 20:27 carta2.txt

A veces lo que interesa es ver todos los ficheros menos unos cuantos que cumplen un determinado patrón, para ello usamos la opción -I junto con el patrón. El patrón de ficheros debe ir entre comillas simples o dobles cuando va separado de -I, pero si van juntos no se entrecomilla (-I 'patrón', -I "patrón", -Ipatrón).

$ ls -I '*.txt'
bin        Documentos  Escritorio  Música      Público  Vídeos
Descargas  Documents   Imágenes    Plantillas  VB

Muchas veces incluimos un número dentro de los nombres de los ficheros, normalmente para indicar su versión. Si queremos que ls pueda usar este número para mostrar los ficheros ordenados por él, utilizaremos la opción -v:

$ ls
bin          carta1.txt  Descargas   Documents   Imágenes  Plantillas  VB
carta11.txt  carta2.txt  Documentos  Escritorio  Música    Público     Vídeos
$ ls car*
carta11.txt  carta1.txt  carta2.txt
$ ls -v car*
carta1.txt  carta2.txt  carta11.txt
$ ls -rv car*
carta11.txt  carta2.txt  carta1.txt

Otras opciones interesantes son:

-R   Muestra un listado recursivo, es decir, recorre también todos los directorios que cuelgan del directorio especificado.
-S Ordena por tamaño.
-X Ordena por extensión.
-t Ordena por la fecha que se muestre (mtime, atime o ctime).
-r Muestra el listado en orden inverso.
-h Añade una unidad al tamaño del fichero, por ejemplo, M para indicar Mebibytes.
-k Muestra el tamaño del fichero en kilobytes.
-m Muestra el listado separado por comas.
-n Muestra el número de uid y gid y no el nombre del usuario y del grupo, respectivamente.
-A Como -a pero sin . ni ..
-B No muestra los ficheros acabados en ~. Lo normal es que estos ficheros sean copias de seguridad hechas por algún programa, normalmente un editor de texto, para guardar la versión previa a la modificación. Por ejemplo, el editor nano crea este tipo de copias de seguridad de los ficheros que edita.
--full-time
Muestra la fecha y la hora completa.

Licencia: licencia de software libre GPL