lunes, 8 de abril de 2019

Significado de primera línea de ls -l

El comando ls suele ejecutarse habitualmente seguido de la opción -l (entre otras). A parte de ver por pantalla la información que esperamos, siempre aparece una primera línea con el siguiente aspecto:
$ ls -l
total 12
-rw-r--r-- 1 root root 12287 abr  8 20:45 a
Aunque se suele pasar por alto esta primera línea, conviene saber qué significa toda información que nos muestre el sistema, y más en un comando tan usado como es ls -l.
La explicación que se encuentra en la documentación oficial del comando es la siguiente:
For each directory that is listed, preface the files with a line `total BLOCKS’, where BLOCKS is the total disk allocation for all files in that directory.
Veamos en detalle qué nos muestra este valor. Supongamos que el fichero listado en el comando anterior no tiene contenido:
$ ls -l
total 0
-rw-r--r-- 1 root root 0 abr  8 20:52 a
A tamaño 0, el directorio no ocupa bloques en disco. Si le metemos algo de información al fichero a:
$ ls -l
total 4
-rw-r--r-- 1 root root 18 abr  8 20:52 a
se observa que con un contenido mínimo, se ocupan 4 bloques en disco.
Podemos indicar al comando ls que nos muestra el número de bloques considerando un tamaño por bloque de 1024 bytes, obteniendo un total de 4 bloques:
$ ls -l --block-size=1024
total 4
-rw-r--r-- 1 root root 18 abr  8 20:52 a
y si los consideramos de 4096 bytes, solo contabilizará 1:
$ ls -l --block-size=4096
total 1
-rw-r--r-- 1 root root 1 abr  8 20:52 a
Por tanto, podemos asumir que el comando ls -l considera bloques de 1024 bytes y que el bloque de disco es de 4096 bytes. Este último dato se puede corroborar con el siguiente comando:
$ sudo blockdev --getbsz /dev/sda1
4096
Por tanto, si pasamos de los 4096 bytes de tamaño de fichero, se consumirán otros 4096 bytes de disco:
$ ls -l
total 4
-rw-r--r-- 1 root root 4096 abr  8 21:00 a
$ echo -n "1" >> a
$ ls -l
total 8
-rw-r--r-- 1 root root 4097 abr  8 21:01 a

Otras entradas relacionadas

No hay comentarios:

Publicar un comentario