# Ls

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

## 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 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

* -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

Un listado del directorio actual se obtendría así:
El listado largo sería:
Y con archivos ocultos:
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:
Si se usa la opción -d se muestra solo la información del directorio:
El listado largo de todos los archivos cuyo nombre empiece por d y luego contenga una t:
Ordenar por fecha descendentemente
Ordenar por fecha ascendentemente
Ordenar por tamaño descendentemente
Ordenar por tamaño ascendentemente