Comprender el comportamiento de ls -s

Comprender el comportamiento de ls -s

Aquí está el resultado de ejecutar ls -l en un directorio.

total 28
-rwxrw-r-- 1 pr3t3nd pr3t3nd  188 Nov 20 20:28 exo1.sh
-rwxrw-r-- 1 pr3t3nd pr3t3nd  202 Nov 20 20:52 exo2_fonction.sh
-rwxrw-r-- 1 pr3t3nd pr3t3nd  176 Nov 20 20:30 exo2.sh
-rw-rw-r-- 1 pr3t3nd pr3t3nd  364 Nov 20 22:24 file
-rw-rw-r-- 1 pr3t3nd pr3t3nd 2912 Nov 20 23:47 file2
drwxrwxr-x 2 pr3t3nd pr3t3nd 4096 Nov 20 23:35 rep
-rwxrw-r-- 1 pr3t3nd pr3t3nd  102 Nov 20 23:45 script.sh

Aquí está el resultado de ejecutar ls -sen el mismo directorio.

total 28
4 exo1.sh           4 exo2.sh  4 file2  4 script.sh
4 exo2_fonction.sh  4 file     4 rep

¿Por qué el tamaño de todos los archivos es 4?

Respuesta1

ls -lmuestra el tamaño del archivo en la quinta columna. ls -sno muestra el tamaño del archivo. Lo que muestra es eltamaño asignado. Eso no es lo mismo.

El tamaño de un archivo es una propiedad del archivo. Es la cantidad de bytes que constituyen el contenido del archivo, ni más ni menos.

El tamaño asignado de un archivo es una propiedad de cómo se almacena el archivo. En la mayoría de los casos, el tamaño asignado es ligeramente mayor que el tamaño, porque los sistemas de archivos dividen el espacio en bloques y el tamaño asignado es el tamaño total de los bloques que se utilizan para almacenar el archivo. A menos que el tamaño del archivo sea múltiplo del tamaño del bloque, habrá un bloque que no se utilizará en su totalidad.

Estás viendo archivos cuyo tamaño es inferior a 4kB y cuyo tamaño asignado es exactamente 4kB. Esto es muy común: tienes un sistema de archivos con un tamaño de bloque de 4kB.

Ver también¿Cuándo imprime `ls -s` "0"?ytamaño del bloque de archivos: diferencia entre stat y ls

información relacionada