En informática , ls
es un comando para listar archivos y directorios de computadoras en sistemas operativos Unix y similares . Está especificado por POSIX y la Especificación Única de UNIX .
Está disponible en el shell EFI , [1] como un paquete separado para Microsoft Windows como parte de la colección UnxUtils de puertos Win32 nativos de utilidades comunes tipo Unix de GNU , [2] o como parte de las herramientas MSX-DOS2 de ASCII para MSX-DOS versión 2. [3]
Los entornos de cálculo numérico MATLAB y GNU Octave incluyen una ls
función con funcionalidad similar. [4] [5]
En otros entornos, como DOS , OS/2 y Microsoft Windows , el comando proporciona una funcionalidad similar dir
.
Una ls
utilidad apareció en la primera versión de AT&T UNIX , el nombre heredado de un comando similar en Multics también llamado 'ls', abreviatura de la palabra "lista". [6] [7] [8] ls
es parte de la Guía de Portabilidad X/Open desde la edición 2 de 1987. Fue heredado en la primera versión de POSIX.1 y la Especificación Única Unix . [9]
Los sistemas operativos Unix y similares mantienen la idea de un directorio de trabajo . Cuando se invoca sin argumentos , ls
enumera los archivos en el directorio de trabajo. Si se especifica un directorio como argumento, se enumeran los archivos en ese directorio; si se especifica un archivo, se enumera ese archivo. Se pueden especificar múltiples directorios y archivos.
En muchos sistemas similares a Unix, los nombres que comienzan con un punto ( .
) están ocultos . Algunos ejemplos son .
, que hace referencia al directorio de trabajo, y ..
, que hace referencia a su directorio padre. Los nombres ocultos no se muestran de forma predeterminada. Con -a
, se muestran todos los nombres, incluidos los nombres ocultos. Con , -A
se muestran todos los nombres, incluidos los nombres ocultos, excepto .
y ..
. Los nombres de archivo especificados explícitamente (por ejemplo ls .secret
) siempre se enumeran.
Sin opciones, ls
solo muestra los nombres. Las distintas implementaciones tienen distintas opciones, pero las más comunes son:
-l
Formato largo, que muestra los tipos de archivos Unix , permisos, número de enlaces físicos , propietario, grupo, tamaño, fecha y hora de la última modificación y nombre. Si la fecha de modificación es anterior a 6 meses, la hora se reemplaza por el año. Algunas implementaciones agregan indicadores adicionales a los permisos. El tipo de archivo puede ser uno de los 8 caracteres siguientes: -
, archivo normal; d
, directorio; l
, enlace simbólico (suave) ; n
, archivos de red ; s
, socket ; p
, canalización con nombre (FIFO); c
, archivo especial de caracteres ; b
, archivo especial de bloques .-h
Tamaños de salida en formato legible para humanos (por ejemplo, 1K ( kilobytes ), 234M ( megabytes ), 2G ( gigabytes )). Esta opción no es parte del estándar POSIX, aunque se implementó en varios sistemas, por ejemplo, GNU coreutils en 1997, [10] FreeBSD 4.5 en 2002, [11] y Solaris 9 en 2002. [12]Las opciones adicionales que controlan cómo se muestran los elementos incluyen:
-R
Listar recursivamente elementos en subdirectorios.-t
Ordenar la lista por hora de modificación (el orden predeterminado es alfabético).-u
Ordenar la lista por hora del último acceso.-c
Ordenar la lista por hora del último cambio del atributo (estado).-r
Invierta el orden, por ejemplo, la hora más reciente, la última.--full-time
Muestra los tiempos hasta el segundo y milisegundo en lugar de sólo el minuto.-1
Una entrada por línea.-m
Formato de flujo; enumera elementos a lo largo de la página, separados por comas.-g
Incluye grupo pero no propietario.-o
Incluye propietario pero no grupo (cuando se combina con -g
grupo y propietario se suprimen).-d
Muestra información sobre un directorio o enlace simbólico, en lugar del contenido de un directorio o el destino del enlace.-F
Agregue un "/" a los nombres de directorio y un "*" a los archivos ejecutables.Es posible resaltar distintos tipos de elementos con distintos colores. Esta es un área en la que las implementaciones difieren:
ls
utiliza la --color
opción [13] ; verifica el tipo de archivo Unix, los permisos de archivo y la extensión de archivo y utiliza su propia base de datos para controlar los colores mantenidos mediante dircolors.ls
utiliza esta -G
opción; solo verifica el tipo de archivo Unix y los permisos de archivo y utiliza la base de datos termcap [14]Cuando se selecciona la opción de usar color para indicar los tipos de elementos, el resultado podría verse así:
-rw-r--r-- 1 tsmitt nregion 26650 20 dic 11:16 audio.ogg brw-r--r-- 1 tsmitt nregion 64 27 ene 05:52 bd-block-device crw-r--r-- 1 tsmitt nregion 255 26 ene 13:57 cd-character-device -rw-r--r-- 1 tsmitt nregion 290 26 ene 14:08 image.png drwxrwxr-x 2 tsmitt nregion 48 26 ene 11:28 di-directory -rwxrwxr-x 1 tsmitt nregion 29 26 ene 14:03 ex-ejecutable -rw-r--r-- 1 tsmitt nregion 0 dic 20 09:39 fi-regular-file lrwxrwxrwx 1 tsmitt nregion 3 26 ene 11:44 ln-soft-link -> dir lrwxrwxrwx 1 tsmitt nregion 15 dic 20 10:57 or-orphan-link -> mi-missing-link drwxr-xrwx 2 tsmitt nregion 4096 dic 20 10:58 ow-other-writeable-dir prw-r--r-- 1 tsmitt nregion 0 26 ene 11:50 pi-pipe -rwxr-sr-x 1 tsmitt nregion 0 dic 20 11:05 sg-setgid srw-rw-rw- 1 tsmitt nregion 0 26 ene 12:00 so-socket drwxr-xr-t 2 tsmitt nregion 4096 20 dic 10:58 st-sticky-dir -rwsr-xr-x 1 tsmitt nregion 0 20 dic 11:09 su-setuid -rw-r--r-- 1 tsmitt nregion 10240 20 dic 11:12 compression.gz drwxrwxrwt 2 tsmitt nregion 4096 20 dic 11:10 tw-sticky-other-writeable-dir
El siguiente ejemplo demuestra la salida del comando:
$ ls -l drwxr--r-- 1 fjones editors 4096 2 mar 12:52 borradores -rw-r--r-- 3 fjones editors 30405 2 mar 12:52 edición-32 -r-xr-xr-x 1 fjones contables 8460 16 ene 2022 edit.sh
Cada línea muestra el indicador d
(directorio) o -
(archivo), la notación de permisos de archivo de Unix , la cantidad de enlaces duros (1 o 3), el propietario del archivo, el grupo del archivo, el tamaño del archivo, la fecha y hora de modificación y el nombre del archivo. En el directorio de trabajo, el propietario fjones
tiene un directorio llamado drafts
, un archivo normal llamado edition-32
y un ejecutable llamado edit.sh
que es "antiguo", es decir, modificado hace más de 6 meses, como lo indica la visualización del año.
┌─────────── archivo (no un directorio) |┌─────────── permisos de lectura y escritura (sin ejecución) para el propietario |│ ┌───────── permisos de solo lectura para el grupo |│ │ ┌─────── permisos de solo lectura para otros |│ │ │ ┌── número de enlaces físicos |│ │ │ │ ┌── propietario |│ │ │ │ │ ┌── grupo de usuarios |│ │ │ │ │ │ ┌── tamaño del archivo en bytes |│ │ │ │ │ │ │ ┌── última modificación el |│ │ │ │ │ │ │ │ ┌── nombre de archivo -rw-r--r-- 3 fjones editores 30405 2 de marzo 12:52 edición-32