Buscar..


Sintaxis

  • ls [OPCIÓN] ... [ARCHIVO] ...

Parámetros

Opción Descripción
-a , --all Listar todas las entradas, incluyendo las que comienzan con un punto
-A , --almost-all Listar todas las entradas excluyendo . y ..
-c Ordenar archivos por hora de cambio
-d , --directory Listar entradas de directorio
-h , - --human-readable Mostrar tamaños en formato legible para humanos (es decir, K , M )
-H Igual que el anterior solo con poderes de 1000 en lugar de 1024
-l Mostrar contenidos en formato de lista larga.
-o Formato de lista larga sin información de grupo
-r , --reverse Mostrar contenidos en orden inverso
-s , --size Tamaño de impresión de cada archivo en bloques.
-S Ordenar por tamaño de archivo
--sort=WORD Ordenar los contenidos por una palabra. (es decir, tamaño, versión, estado)
-t Ordenar por tiempo de modificación
-u Ordenar por último tiempo de acceso
-v Ordenar por versión
-1 Listar un archivo por línea

Lista de archivos

El comando ls enumera los contenidos de un directorio específico, excluyendo los archivos de puntos. Si no se especifica ningún directorio, entonces, de forma predeterminada, se enumeran los contenidos del directorio actual.

Los archivos listados están ordenados alfabéticamente, por defecto, y alineados en columnas si no caben en una línea.

$ ls
apt  configs  Documents  Fonts    Music      Programming  Templates  workspace
bin  Desktop  eclipse    git      Pictures   Public       Videos

Lista de archivos en un formato de listado largo

La opción -l del comando ls imprime el contenido de un directorio específico en un formato de listado largo. Si no se especifica ningún directorio, entonces, de forma predeterminada, se enumeran los contenidos del directorio actual.

ls -l /etc

Ejemplo de salida:

total 1204
drwxr-xr-x  3 root root    4096 Apr 21 03:44 acpi
-rw-r--r--  1 root root    3028 Apr 21 03:38 adduser.conf
drwxr-xr-x  2 root root    4096 Jun 11 20:42 alternatives
...

La salida primero muestra el total , lo que indica el tamaño total en bloques de todos los archivos en el directorio listado. Luego muestra ocho columnas de información para cada archivo en el directorio listado. A continuación se muestran los detalles de cada columna en la salida:

Columna No. Ejemplo Descripción
1.1 d Tipo de archivo (ver tabla abajo)
1.2 rwxr-xr-x Cadena de permiso
2 3 Número de enlaces duros
3 root Nombre del dueño
4 root Grupo propietario
5 4096 Tamaño de archivo en bytes
6 Apr 21 03:44 Tiempo de modificacion
7 acpi Nombre del archivo

Tipo de archivo

El tipo de archivo puede ser uno de los siguientes caracteres.

Personaje Tipo de archivo
- Archivo regular
b Bloquear archivo especial
c Archivo especial de caracteres
C Archivo de alto rendimiento ("datos contiguos")
d Directorio
D Puerta (archivo IPC especial solo en Solaris 2.5+)
l Enlace simbólico
M Archivo fuera de línea ("migrado") (Cray DMF)
n Archivo especial de red (HP-UX)
p FIFO (tubo con nombre)
P Puerto (archivo de sistema especial en Solaris 10+ solamente)
s Enchufe
? Algún otro tipo de archivo

Lista de archivos ordenados por tamaño

La opción -S del comando ls ordena los archivos en orden descendente de tamaño de archivo.

$ ls -l -S ./Fruits
total 444
-rw-rw-rw- 1 root root 295303 Jul 28 19:19 apples.jpg
-rw-rw-rw- 1 root root 102283 Jul 28 19:19 kiwis.jpg
-rw-rw-rw- 1 root root  50197 Jul 28 19:19 bananas.jpg

Cuando se usa con la opción -r , el orden se invierte.

$ ls -l -S -r /Fruits
total 444
-rw-rw-rw- 1 root root  50197 Jul 28 19:19 bananas.jpg
-rw-rw-rw- 1 root root 102283 Jul 28 19:19 kiwis.jpg
-rw-rw-rw- 1 root root 295303 Jul 28 19:19 apples.jpg

Lista de archivos sin usar `ls`

Utilice la expansión de nombre de archivo del shell de Bash y las capacidades de expansión de refuerzo para obtener los nombres de archivo:

# display the files and directories that are in the current directory
printf "%s\n" *

# display only the directories in the current directory
printf "%s\n" */

# display only (some) image files
printf "%s\n" *.{gif,jpg,png}

Para capturar una lista de archivos en una variable para su procesamiento, normalmente es una buena práctica usar una matriz bash :

files=( * )

# iterate over them
for file in "${files[@]}"; do
    echo "$file"
done

Listar los diez archivos modificados más recientemente

A continuación se enumerarán hasta diez de los archivos modificados más recientemente en el directorio actual, utilizando un formato de listado largo ( -l ) y ordenados por tiempo ( -t ).

ls -lt | head

Listar todos los archivos incluyendo archivos de puntos

Un archivo de puntos es un archivo cuyos nombres comienzan con a . . Estos normalmente están ocultos por ls y no están listados a menos que sean solicitados.

Por ejemplo la siguiente salida de ls :

$ ls
bin  pki

El -a o --all opción mostrará una lista de todos los archivos, incluyendo dotfiles.

$ ls -a
.   .ansible       .bash_logout   .bashrc  .lesshst  .puppetlabs  .viminfo
..  .bash_history  .bash_profile  bin      pki       .ssh

La opción -A o -A --almost-all muestra una lista de todos los archivos, incluidos los archivos de puntos, pero no la lista implícita . y .. Tenga en cuenta que . es el directorio actual y .. es el directorio padre.

$ ls -A 
.ansible       .bash_logout   .bashrc  .lesshst  .puppetlabs  .viminfo
.bash_history  .bash_profile  bin      pki       .ssh

Lista de archivos en un formato de árbol

El comando de tree enumera los contenidos de un directorio específico en un formato similar a un árbol. Si no se especifica ningún directorio, entonces, de forma predeterminada, se enumeran los contenidos del directorio actual.

Ejemplo de salida:

$ tree /tmp
/tmp
├── 5037
├── adb.log
└── evince-20965
    └── image.FPWTJY.png

Use la opción -L del comando del tree para limitar la profundidad de visualización y la opción -d para listar solo los directorios.

Ejemplo de salida:

$ tree -L 1 -d /tmp
/tmp
└── evince-20965


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow