Linux: mostrar las propiedades del archivo a través de la terminal

En esta breve guía, veremos cómo mostrar las propiedades de archivos y directorios en Linux, a través de la terminal, usando los comandos *ls* y *stat*.

Introducción

Comúnmente necesitamos y queremos saber más sobre los archivos y directorios con los que estamos trabajando.

La mayoría de las personas conocen una de las formas, que consiste simplemente en Hacer clic derecho > Propiedades en la carpeta o archivo deseado para ver sus propiedades. Sin embargo, para los expertos en terminales de Moore, así es como puede obtener la misma (y más) información a través de la Terminal en Linux.

El comando ls

Uno de los comandos más utilizados es el comando ls, que enumera todos los archivos y directorios en los que se encuentra, junto con sus nombres.

Una vez que se ubique en la ruta de archivo que desea, puede enumerar todos los archivos/carpetas presentes a través de:

1
2
$ ls
Folder_one  large.jpg  os.zip

Alternativamente, puede proporcionar un nombre de directorio para listar archivos, sin tener que moverse a ese directorio:

1
2
$ ls Folder_one
cpfile.c  Direct  fileinfo.c

Sin embargo, estos son solo los nombres, y no podemos inferir mucho de ellos. El comando ls tiene varias opciones no obligatorias que, cuando están activadas, nos dan mucho más sobre estos archivos al listarlos.

Puede usarlos solos o combinar algunos de ellos, según lo que esté buscando exactamente.

Obtener detalles con la opción -l

La opción -l modificará el comando ls para brindarle información mucho más detallada, como si una entrada es un archivo o un directorio, el tamaño (generalmente en bytes), fecha y hora modificada, permisos y más:

1
$ ls -l

El resultado de este comando debería ser algo como:

1
2
3
4
total 15168
drwxrwxr-x 3 marija marija     4096 Jul 18 19:26 Folder_one
-rwxrwxrwx 1 marija marija   164461 Sep 12  2017 large.jpg
-rw-rw-r-- 1 marija marija 15354276 Oct 25  2018 os.zip

Aquí podemos ver que tenemos un directorio (d en drwxrwxr-x), llamado Folder_one y 2 archivos. También podemos ver su propietario y grupo, marija, y su tamaño en bytes, así como su fecha/hora de modificación.

El número que sigue a los permisos es el número de enlaces al archivo o directorio.

Si desea leer más sobre los permisos y cómo cambiarlos a través de la terminal, lea nuestra Guía para entender chmod.

Nota: Puede llegar lejos con el indicador -l, y al combinar otros indicadores con él, el comando ls lo llevará lejos en esta tarea.

Opción -lh legible por humanos

Si desea una forma más legible por humanos, puede agregar la extensión unida -lh o simplemente -h después de la opción -l:

1
2
3
4
5
$ ls -lh
total 15M
drwxrwxr-x 3 marija marija 4,0K Jul 18 19:26 Folder_one
-rwxrwxrwx 1 marija marija 161K Sep 12  2017 large.jpg
-rw-rw-r-- 1 marija marija  15M Oct 25  2018 os.zip

Ahora, podemos ver el tamaño de los archivos mostrado en KB, MB, GB, etc. en lugar de mostrarse solo en bytes, lo que puede ser muy útil. Sin embargo, ese es principalmente el beneficio que obtienes de esta bandera.

Mostrando archivos ocultos con la opción -la

Los archivos ocultos comienzan con un símbolo de punto (.) y no están destinados a ser recogidos por la mayoría del software GUI o el comando ls. Por lo general, estos son archivos que no desea ver, por lo que tiene mucho sentido.

Por otro lado, si desea incluir también archivos ocultos al enumerar los archivos de un directorio, puede agregar el indicador -a. Combinando el indicador -l y el indicador -a, puede imprimir los archivos ocultos junto con los archivos normales, con su información:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
$ ls -la
total 15212
drwxr-xr-x  3 marija marija     4096 Jul 18 20:03 .
drwxr-xr-x 29 marija marija     4096 Jul 18 20:13 ..
drwxrwxr-x  3 marija marija     4096 Jul 18 19:26 Folder_one
-rwxrwxrwx  1 marija marija   164461 Sep 12  2017 large.jpg
-rw-rw-r--  1 marija marija 15354276 Oct 25  2018 os.zip
-rw-r--r--  1 marija marija    12288 Jan 29  2018 .tekst.txt.swn
-rw-r--r--  1 marija marija    12288 Jan 29  2018 .tekst.txt.swo
-rw-r--r--  1 marija marija    12288 Jan 29  2018 .tekst.txt.swp
Mostrar el tamaño del bloque con la opción -s {#mostrar el tamaño del bloque con la opción}

La opción -s muestra el tamaño del archivo en bloques, en lugar de bytes normales:

1
2
3
$ ls -s
total 15168
    4 Folder_one    164 large.jpg  15000 os.zip

Nota: Los bloques son la unidad de escritura más pequeña para su sistema y hardware.

Ordenar archivos por tamaño con la opción -lS {#ordenar archivos por tamaño con la opción}

La bandera -S, que no debe confundirse con la minúscula -s de antes, es una bandera de clasificación. Ordena los archivos por tamaño, en orden descendente:

1
2
3
4
5
$ ls -lS
total 15168
-rw-rw-r-- 1 marija marija 15354276 Oct 25  2018 os.zip
-rwxrwxrwx 1 marija marija   164461 Sep 12  2017 large.jpg
drwxrwxr-x 3 marija marija     4096 Jul 18 19:26 Folder_one
Lista recursiva con la opción -R

Si desea listar los subdirectorios, tendrá que hacer una llamada ls recursiva. La opción -R hace que esto sea un esfuerzo realmente simple.

Le dará una representación de árbol de todos los archivos o directorios que se encuentran en un lugar en particular:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
$ ls -R directory

Screenshot 2021-07-26 at 18.53.05.png file.txt
Screenshot 2021-07-26 at 21.15.20.png mpl

directory/dvp-articles:
axis-off

directory/dvp-articles/axis-off:
app.py     get-pip.py

directory/mpl:
mpl-chapter-2-1.png

Aquí, hemos llamado recursivamente a ls en el directorio. Dentro de él, hay otro directorio - dvp-articles, y dentro de él, otro más - axis-off. Dentro de axis-off, hay app.py y get-pip.py.

Por supuesto, también puede encadenar el indicador -l aquí, pero la salida puede complicarse un poco:

1
$ ls -lR directory
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
ls -lR directory

[correo electrónico protegido] 1 david  staff  369705 Jul 26 23:57 Screenshot 2021-07-26 at 23.57.34.png
[correo electrónico protegido] 1 david  staff  103861 Jul 27 00:05 Screenshot 2021-07-27 at 00.05.16.png
drwxr-xr-x  3 david  staff      96 Jun 17 18:00 dvp-articles
-rw-r--r--  1 david  staff       0 Jun 25 17:11 file.txt
drwxr-xr-x  3 david  staff      96 Jul 16 20:19 mpl

directory/dvp-articles:
total 0
[correo electrónico protegido] 4 david  staff  128 Jun 17 18:03 axis-off

directory/dvp-articles/axis-off:
total 3800
-rw-r--r--  1 david  staff      463 Jun 17 18:08 app.py
-rw-r--r--  1 david  staff  1937800 Jun 17 18:03 get-pip.py

directory/mpl:
total 376
[correo electrónico protegido] 1 david  staff  192506 Jul 16 20:18 mpl-chapter-2-1.png
Opción -i

Para usar [inode] (https://en.wikipedia.org/wiki/Inode), puede agregar el indicador -i:

1
2
3
4
5
$ ls -i

688193 Folder_one  
680393 large.jpg  
680392 os.zip

Por supuesto, puedes encadenarlo con otras banderas como:

1
2
3
4
$ ls -li
 49323 [correo electrónico protegido]  3 david  staff    96 Jun 16 20:39 Applications
 34615 drwx------+ 15 david  staff   480 Jul 27 00:05 Desktop
 ...

El comando stat

El comando stat se parece mucho más al antiguo enfoque de Click derecho > Propiedades, porque formatea todos los datos y propiedades en un formato muy legible. Requiere una ruta de archivo y no es tan personalizable como ls:

1
$ stat Folder_one

Esto resulta en:

1
2
3
4
5
6
7
8
File: 'Folder_one' 
  Size: 4096        Blocks: 8          IO Block: 4096 directory
Device: 805h/2053d  Inode: 688193      Links: 3
Access: (0775/drwxrwxr-x)  Uid: ( 1000/  marija)   Gid: ( 1000/  marija)
Access: 2021-07-18 20:04:03.205402891 +0200
Modify: 2021-07-18 19:26:00.681976407 +0200
Change: 2021-07-18 20:03:51.617219116 +0200
 Birth: -

Para algunos, esta es una solución mucho mejor que el comando ls.

Con stat, también puede formatear la información impresa a través de --printf. Puede filtrar datos como el nombre de usuario del propietario, el nombre del grupo del propietario o la hora del último cambio de estado, en una forma aún más legible:

1
$ stat --printf='%U\n%G\n%z\n' Folder_one/

Lo que en este caso resultará en:

1
2
3
marija
marija
2021-07-18 20:03:51.617219116 +0200

Observe que estamos poniendo ''\n'' después de cada propiedad deseada, de modo que cada una se imprima en una nueva línea.

Conclusión

Usando la terminal, es fácil encontrar las propiedades del archivo, usando ls con cualquiera de sus banderas aceptadas o vía stat.

En esta breve guía, hemos echado un vistazo a cómo mostrar las propiedades de los archivos usando Linux.