Necesito obtener el tamaño del directorio en la terminal para fines de firma. Estoy usando el siguiente comando:
du -s /path/to/dir
Estoy multiplicando el resultado por el tamaño de bloque UNIX tradicional (512 bytes) y obtengo el tamaño real del directorio en bytes. Sin embargo, la ventana de diálogo "Obtener información" del Finder muestra el tamaño ligeramente más pequeño que el calculado con el comando del terminal. Y parece que es reproducible en cualquier carpeta/paquete. ¿Qué me estoy perdiendo?
Respuesta aceptada:
Normalmente, du
muestra información sobre el uso del disco (que es de donde viene su nombre). Tenga en cuenta que
disk usage != sum of file sizes
Porque cada archivo ocupa una cantidad de bloques en el sistema de archivos (ver man mkfs.ext2
por ejemplo). Esto significa que solo en una situación muy rara, el uso del disco de un archivo es igual a su tamaño real; para eso, el tamaño debe ser exactamente un múltiplo del tamaño del bloque.
Piense en los bloques del sistema de archivos como cajas que contienen partes de archivos; cada una puede contener una parte de un solo archivo.
Para la versión GNU de du
, mira el --apparent-size
opción.
¡Puede ocurrir una situación aún más interesante cuando hay algunos archivos dispersos en el sistema de archivos!