Estoy confundido con la salida del comando 'du' en Linux

21

Creo un archivo llamado file.o, quiero verificar el tamaño del archivo file.o.

du -h file.o ====> 4.0K

du -b file.o ====> 1120

según du -b file.o, llego a conocer file.o es 1120bytes de gran tamaño. Pero, ¿por qué du -h file.ogenera 4.0K (significa 4 * 1024 bytes)?

Jason
fuente

Respuestas:

33

El archivo es más pequeño, pero ocupa un bloque completo de 4.0K en el disco (solo puede tener un archivo en un bloque). Si su tamaño de byte fuera (por ejemplo) 5678 Bytes, ocuparía dos bloques de 4.0K, es decir, 8.0K.

du -b imprime tamaños en bytes, anulando el tamaño de bloque predeterminado.

eumiro
fuente
10

Para agregar a la respuesta de eumiro, el tamaño del bloque puede ser diferente para cada sistema de archivos / partición.

Puede encontrar el tamaño de bloque de un sistema de archivos usando tune2fs -l /dev/<disk> | grep '^Block size'o stat -c "%o" <file on the disk>.

Mikel
fuente