ls(1) listan los contenidos de directorios

Other Alias

dir, vdir

SINOPSIS

ls [opciones] [fichero...]
dir [fichero...]
vdir [fichero...]

Opciones de POSIX: [-CFRacdilqrtu1]

Opciones de GNU (en la forma más corta): [-1abcdfghiklmnopqrstuvwxABCDFGHLNQRSUX] [-w cols] [-T cols] [-I patrón] [--full-time] [--show-control-chars] [--block-size=tamaño] [--format={long,verbose,commas,across,vertical,single-column}] [--sort={none,time,size,extension}] [--time={atime,access,use,ctime,status}] [--color[={none,auto,always}]] [--help] [--version] [--]

DESCRIPCIÓN

El programa ls lista primero sus argumentos no directorios fichero, y luego para cada argumento directorio todos los ficheros susceptibles de listarse contenidos en dicho directorio. Si no hay presente ningún argumento aparte de las opciones, se supone un argumento predeterminado `.' (el directorio de trabajo). La opción -d hace que los directorios se traten como argumentos no directorios; es decir, como ficheros normales. Un fichero es susceptible de listarse cuando su nombre no comienza con `.' o cuando se da la opción -a (o -A, vea más abajo).

Cada una de las listas de ficheros (las de ficheros no directorios, y para cada directorio la lista de ficheros de dentro) se clasifica separadamente según la secuencia de clasificación en la localización en curso. Cuando se da la opción -l, cada lista se precede por una línea de sumario que da el tamaño total de todos los ficheros en la lista, medidos en semi-kilobytes (512 B).

La salida es a la salida estándar, una entrada por cada línea, a menos que se pida una salida multi-columna mediante la opción -C. Sin embargo, para la salida en una terminal, no está definido si la salida será en una sola columna o en varias. Las opciones -1 y -C se pueden emplear para forzar la salida en una o en varias columnas, respectivamente.

OPCIONES DE POSIX

-C
Lista los ficheros en columnas, ordenados verticalmente.
-F
Añade tras cada nombre de directorio un `/', tras cada nombre de FIFO un `|', y tras cada nombre de un ejecutable un `*'.
-R
Lista recursivamente los subdirectorios encontrados.
-a
Incluye en el listado ficheros cuyos nombres empiecen por `.'.
-c
Emplea el tiempo de cambio de estado en vez del de modificación para la clasificación (con -t) o el listado (con -l).
-d
Lista nombres de directorios como otros ficheros, en vez de listar sus contenidos.
-i
Precede la salida para el fichero por el número de serie del fichero (número-í o número de nodo-í).
-l
Escribe (en formato de una sola columna) los permisos del fichero, el número de enlaces que tiene, el nombre del propietario, el del grupo al que pertenece, el tamaño (en bytes), una marca de tiempo, y el nombre del fichero. De forma predeterminada, la marca de tiempo que se muestra es la de la última modificación; las opciones -c y -u seleccionan las otras dos que hay. Para ficheros especiales de dispositivo el campo de tamaño se reemplaza comúnmente por los números de dispositivo mayor y menor.
-q
Imprime los caracteres no imprimibles que haya en un nombre de fichero como signos de interrogación `?'. (Se permite que esto sea lo predeterminado cuando la salida es una terminal.)
-r
Invierte el orden de la clasificación.
-t
Clasifica por la marca de tiempo mostrada.
-u
Emplea el tiempo de último acceso en vez del de modificación para la clasificación (con -t) o el listado (con -l).
-1
Para la salida en una sola columna.

DETALLES DE GNU

Si la salida estándar es una terminal, la salida es en columnas (ordenadas verticalmente).

dir (también instalado como d) es equivalente a `ls -C -b'; esto es, los ficheros se listan de forma predeterminada en columnas, ordenadas verticalmente. vdir (también instalado como v) es equivalente a `ls -l -b'; esto es, los ficheros se listan de forma predeterminada en el formato largo.

OPCIONES DE GNU

-1, --format=single-column
Lista un fichero por línea. Esto es lo predeterminadao cuando la salida estándar no es una terminal.
-a, --all
Lista todos los ficheros en directorios, incluyendo todos los ficheros cuyos nombres comiencen por `.'.
-b, --escape, --quoting-style=escape
Muestra los caracteres no gráficos en nombres de ficheros empleando secuencias de escape alfabéticas y octales como las empleadas en el lenguaje C. Esta opción es la misma que -Q salvo que no se delimintan los nombres de fichero por comillas dobles.
-c, --time=ctime, --time=status
Clasifica los contenidos del directorio de acuerdo con los tiempos de cambio de estado de los ficheros (el `ctime' en el nodo-í). Si el formato de listado largo se está empleando (-l) muestra el tiempo de cambio de estado en vez del de modificación.
-d, --directory
Lista nombres de directorios como otros ficheros, en vez de listar sus contenidos.
-f
No ordena los contenidos del directorio; los lista en el orden en que estén almacenados en el disco. También activa -a y -U y desactiva -l, --color, -s y -t si se especificaron antes de -f.
-g
No hace nada; por compatibilidad con otras versiones de Unix.
-h, --human-readable
Añade una letra indicativa de tamaño, tal como M para megabytes binarios (`mebibytes'), a cada tamaño. (Nueva en fileutils-4.0.)
-i, --inode
Muestra el número de nodo-í (también llamado el número de serie del fichero o el número índice o número-í) de cada fichero a la izquierda de su nombre. (Este número identifica de forma inequívoca a cada fichero dentro de un sistema de ficheros particular.)
-k, --kilobytes
Si se están listando los tamaños de ficheros, los muestra en kilobytes.
-l, --format=long, --format=verbose
Además del nombre de cada fichero, muestra el tipo del fichero, los permisos, el número de enlaces duros, el nombre del propietario, el del grupo al que pertenece, el tamaño en bytes, y la marca de tiempo (el tiempo de modificación a menos que se seleccione otro). Para ficheros con un tiempo de más de 6 meses o de más de 1 hora en el futuro, la marca de tiempo contiene el año en lugar de la hora del día.

Para cada directorio que se liste, escribe antes de los ficheros una línea `total bloques', donde bloques es el espacio de disco total usado por todos los ficheros en ese directorio. Por omisión, se emplean bloques de 1024 bytes; si la variable de entorno POSIXLY_CORRECT está definida, se usan bloques de 512 bytes (a menos que se haya dado la opción -k). Los bloques computados cuentan cada enlace duro separadamente; esto es discutiblemente una deficiencia.

Los permisos listados son similares a especificaciones de modo simbólico, pero ls combina varios bits en el tercer carácter de cada conjunto de permisos.

s
Si están activados tanto el bit SETUID o SETGID como el correspondiente de ejecutable.
S
Si está activado el bit SETUID o SETGID pero no el correspondiente de ejecutable.
t
Si tanto el bit pegajoso (STI) como el ejecutable para `otros' están activados.
T
Si el bit STI o pegajoso está activado pero el ejecutable para `otros' no lo está.
x
Si el bit ejecutable está activado y no se aplica nada de lo anterior.
-
Otra cosa (no hay permiso).
-m, --format=commas
Lista los ficheros horizontalmente, con tantos como quepan en cada línea, separados unos de otros por una coma y un espacio.
-n, --numeric-uid-gid
Lista los UID y GID numéricos en vez de los nombres.
-o
Produce listados de directorio en el formato largo, pero no muestra información de grupo, como la opción -l antigua. Es equivalente a emplear --format=long --no-group. Esta opción se proporciona por compatibilidad con otras versiones de ls.
-p, --file-type, --indicator-style=file-type
Añade un carácter a cada nombre de fichero indicando el tipo del fichero. Esto es como -F salvo en que los ejecutables no se marcan. (De hecho, fileutils-4.0 trata la opción --file-type como --classify.)
-q, --hide-control-chars
Muestra signos de interrogación `?' en vez de caracteres no gráficos en nombres de ficheros. Esto es el comportamiento predeterminado.
-r, --reverse
Clasifica los contenidos de directorios en orden inverso.
-s, --size
Muestra el tamaño de cada fichero en bloques de 1024 bytes a la izquierda del nombre. Si la variable de entorno POSIXLY_CORRECT está definida, se emplean en su lugar bloques de 512 bytes, a menos que se haya dado la opción -k.
-t, --sort=time
Clasifica por el tiempo de modificación (el `mtime' en el nodo-í) en vez de alfabéticamente, con los ficheros más recientes en primer lugar.
-u, --time=atime, --time=access, --time=use
Clasifica los contenidos de los directorios de acuerdo con los tiempos de último acceso de los ficheros en vez de los de modificación (el `atime' en el nodo-í). Si se está empleando el formato de listado largo, muestra el tiempo de último acceso en vez del de modificación.
-v
Clasifica los contenidos de los directorios de acuerdo a la versión de los ficheros. Esto tiene en cuenta el hecho de que los nombres de los ficheros incluyen con frecuencia índices o números de versión. Las funciones de ordenación estándares no producen normalmente el orden que la gente espera ya que las comparaciones se hacen carácter a carácter. La ordenación por versión soluciona este problema, siendo especialmente útil cuando se recorren directorios que contienen muchos ficheros con índices/número de versión en sus nombres. Por ejemplo:

     > ls -1            > ls -1v
     foo.zml-1.gz       foo.zml-1.gz
     foo.zml-100.gz     foo.zml-12.gz
     foo.zml-12.gz      foo.zml-25.gz
     foo.zml-25.gz      foo.zml-100.gz

También dese cuenta que las partes numéricas con ceros a la izquierda se consideran como fraccionarias:

     > ls -1            > ls -1v
     abc-1.007.tgz      abc-1.007.tgz
     abc-1.012b.tgz     abc-1.01a.tgz
     abc-1.01a.tgz      abc-1.012b.tgz

(Nueva en fileutils-4.0.)

-w, --width cols
Asume que la pantalla tiene cols columnas de ancho. El valor predeterminado se toma del controlador de terminal si es posible; si no, se emplea la variable de ambiente COLUMNS si está definida; de otro modo el valor predeterminado es 80.
-x, --format=across, --format=horizontal
Lista los ficheros en columnas, ordenados horizontalmente.
-A, --almost-all
Lista todos los ficheros en los directorios, excepto `.' y `..'.
-B, --ignore-backups
No lista los ficheros que acaben en `~', a menos que se den sus nombres en la línea de órdenes como argumentos.
-C, --format=vertical
Lista ficheros en columnas, ordenadas verticalmente. Esto es lo predeterminado si la salida estándar es una terminal. Siempre es el comportamiento predeterminado también para dir y d.
-D, --dired
Con el formato de listado largo (-l), imprime una línea adicional tras la salida principal:
//DIRED// COM1 FIN1 COM2 FIN2 ...

Los COMn y FINn son enteros positivos que guardan la posición en bytes del COMienzo y el FINal respectivamente de cada nombre de fichero en la salida. Esto hace más fácil a Emacs encontrar los nombres, incluso si contienen caracteres inusuales como espacios o nuevas-líneas, sin tener que andar buscando.

Si los directorios se están listando recursivamente (-R), muestra una línea similar tras cada subdirectorio:
//SUBDIRED// COM1 FIN1 ...

-F, --classify, --indicator-style=classify
Añade un carácter a cada nombre de fichero indicando el tipo del fichero. Para ficheros regulares que sean ejecutables, añade un `*'. Los indicadores de tipos de ficheros son `/' para directorios, `@' para enlaces simbólicos, `|' para FIFOs, `=' para conectores, y nada para ficheros regulares.
-G, --no-group
Inhibe la salida de información de grupo en un listado de directorio en formato largo.
-H, --si
Hace lo mismo que -h pero usa las unidades oficiales del SI (con potencias de 1000 en vez de 1024, por lo que M significa 1000000 en lugar de 1048576). (Nueva en fileutils-4.0.)
-I, --ignore=patrón
No lista los ficheros cuyos nombres concuerden con el patrón del shell patrón (esto no es una expresión regular) a menos que se den en la línea de órdenes como argumentos. Como en el shell, un `.' inicial en un nombre de fichero no concuerda con un comodín al principio de patrón.
-L, --dereference
Lista la información del fichero correspondiente a un enlace simbólico en lugar de la del mismo enlace.
-N, --literal
No hace nada con los caracteres no gráficos en nombres de ficheros; los muestra en la salida tal cual.
-Q, --quote-name, --quoting-style=c
Encierra los nombres de ficheros entre comillas dobles y muestra los caracteres no gráficos de sus nombres como en el lenguaje C.
-R, --recursive
Lista los contenidos de todos los directorios recursivamente.
-S, --sort=size
Clasifica los contenidos de los directorios por los tamaños de los ficheros en vez de alfabéticamente, con los ficheros más grandes en primer lugar.
-T, --tabsize=cols
Asume que cada parada de tabulación está a cols columnas de ancho; el valor predeterminado es 8. ls emplea tabuladores donde es posible en la salida, por eficiencia. Si cols es cero, no usa tabuladores para nada.
-U, --sort=none
No clasifica los contenidos de directorios; los lista en el orden en que estén almacenados en el disco. (La diferencia entre -U y -f es que el primero no desactiva o activa opciones.) Esto es especialmente de utilidad cuando se listen directorios muy grandes, puesto que al no efectuar ninguna ordenación puede ir bastante más rápido.
-X, --sort=extension
Clasifica los contenidos del directorio alfabéticamente por las extensiones de los ficheros (caracteres tras el último `.'); los ficheros sin extensión se ponen en primer lugar.
--block-size=tamaño
Muestra los tamaños en bloques de tamaño bytes. (Nueva en fileutils-4.0.)
--color[=cuándo]
Especifica si emplear color para distinguir tipos de ficheros. Los colores se especifican mediante la variable de entorno LS_COLORS. Para información acerca de cómo definir esta variable, consulte dircolors(1). cuándo puede omitirse, o ser uno de:
none
No emplear color en absoluto. Esto es lo predeterminado.
auto
Emplear color solamente si la salida estándar es una terminal.
always
Emplear color siempre. Especificar --color y no cuándo es equivalente a --color=always.
--full-time
Lista los tiempos al completo, en vez de emplear los métodos heurísticos para las abreviaturas normales. El formato es el mismo que el predeterminado de date(1); no es posible cambiar esto, pero uno puede extraer la cadena de fecha con cut(1) y luego pasar el resultado a `date -d'.

Esto es mayormente de utilidad porque la salida de tiempo incluye los segundos. (Los sistemas de ficheros de Unix almacenan las marcas de tiempo solamente al segundo más cercano, de forma que esta opción muestra toda la información que hay.) Por ejemplo, esto puede ayudar cuando uno tiene un Makefile que no esté regenerando correctamente los ficheros.

--quoting-style=word
Usa el estilo word para entrecomillar los nombres de salida. El parámetro word debe ser uno de los siguientes:
literal
Muestra los nombres "tal cual". Éste es el comportamiento por omisión de ls.
shell
Entrecomilla los nombres para el intérprete de órdenes si estos contienen metacaracteres del intérprete de órdenes o si pueden producir una salida ambigüa.
shell-always
Entrecomilla los nombres para el intérprete de órdenes, aunque cuando, normalmente, no necesitaran entrecomillarse.
c
Entrecomilla los nombres como si fueran una cadena en C. Esto es lo mismo que la opción -Q.
escape
Entrecomilla como con c pero omite las comillas dobles que delimitan el nombre. Esto es lo mismo que la opción -b.

Se puede especificar un valor por omisión para esta opción con la variable de entorno QUOTING_STYLE. (Véase ENTORNO más abajo.)

--show-control-chars
Muestra los caracteres no gráficos "tal cual" en los nombres de los ficheros. Esto es lo que suele ocurrir a menos que la salida sea una terminal y el programa sea ls.

OPCIONES ESTÁNDARES DE GNU

--help
Muestra un mensaje en la salida estándar sobre el modo de empleo y acaba con estado de éxito.
--version
Muestra en la salida estándar información sobre la versión, y luego acaba con estado de éxito.
--
Termina con la lista de opciones.

ENTORNO

La variable POSIXLY_CORRECT determina la elección de la unidad. Si no está definida, entonces la variable TABSIZE determina el número de caracteres por cada parada de tabulador. La variable COLUMNS (cuando contiene la representación de un entero en base 10) determina la anchura de columna de salida (para el empleo con la opción -C). Los nombres de ficheros no deben ser truncados para que quepan en una salida multi-columna.

Las variables LANG, LC_ALL, LC_COLLATE, LC_CTYPE, LC_MESSAGES y LC_TIME tienen los significados usuales. La variable TZ da el huso horario para cadenas de tiempo escritas por ls. La variable LS_COLORS se emplea para especificar los colores empleados.

La variable QUOTING_STYLE se usa para especificar el valor por omisión para la opción --quoting-style. Su valor actual por omisión es literal, aunque los autores han advertido que podría cambiar a shell en alguna versión futura de ls.

FALLOS

En sistemas BSD, la opción -s da tamaños que son la mitad de los valores correctos para ficheros que están montados por NFS desde sistemas HP-UX. En sistemas HP-UX, da tamaños que son el doble de los valores correctos para ficheros que están montados por NFS desde sistemas BSD. Esto es debido a un defecto de HP-UX; también afecta al programa ls de HP-UX.

CONFORME A

POSIX 1003.2.

OBSERVACIONES

Esta página describe ls según se encuentra en el paquete fileutils-4.0; otras versiones pueden diferir un poco. Envíe por correo electrónico correcciones y adiciones a la dirección [email protected]. Informe de fallos en el programa a [email protected].