Sé que el tamaño de un directorio en sí es diferente a los tamaños de los archivos que contiene.
Pienso en un directorio como una lista de los directorios y archivos dentro, por lo tanto, el tamaño de un directorio debe estar relacionado con el número de archivos / directorios dentro, con un mínimo de 4096 bytes debido a la restricción de tamaño de bloque.
Pero en mi sistema, tengo muchos directorios bien poblados con 4096 bytes, y algunos directorios que están considerablemente menos poblados y tienen alrededor de 10 megabytes. ¿Me puede explicar por qué sucede esto?
Respuestas:
El sistema de archivos utilizado y el número máximo de entidades en ese directorio en cualquier momento determina el tamaño. Una vez que se agota el tamaño predeterminado reservado para el directorio, se asigna más espacio para el directorio. Sin embargo, cuando el número de entidades disminuye, el espacio asignado no se libera automáticamente. Entonces, si, en un punto, un directorio tiene 10 millones de entidades, permanecería del mismo tamaño si se eliminaran 9,999,999 de ellas. Esto lleva a situaciones interesantes como en esta publicación de Unix y Linux .
Esto no necesariamente es válido para otros sistemas de archivos. Los
ext{2,3,4}
sistemas de archivos están afectados. NTFS es, en menor medida.tmpfs
y btrfs no lo son. ZFS es bastante conservador, obtuve una salida2
para el segundostat
comando.Relacionado:
fuente