Bash
Listado de archivos
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