De vez en cuando, algunas aplicaciones se ejecutan de manera salvaje y llenan un directorio con una gran cantidad de archivos. Una vez que arreglamos el error y limpiamos los archivos, el directorio permanece grande (> 50 MB) aunque solo contenga entre 20 y 30 archivos.
¿Hay algún comando que compacta un directorio sin tener que volver a crearlo?
Puntos de bonificación: ¿un enorme directorio vacío afecta el rendimiento de acceso de ese directorio? Supongo que sí, pero tal vez no valga la pena molestarse. Parece más lento hacerlo ls
en dicho directorio.
No creo que exista tal cosa (pero, por supuesto, podría estar completamente equivocado). Sin embargo, tal vez algunas herramientas específicas del sistema de archivos: ¿qué FS estás usando?
—
Mat
ext3, pero he visto ese problema en la mayoría de los sistemas de archivos con los que he tratado en el mundo de Unix. Tampoco creo que exista una herramienta así, pero me gustaría que se demuestre que estoy equivocado.
—
Mathieu Longtin
Etiqueté su pregunta "ext3" ya que esta pregunta es muy específica del sistema de archivos. No sé la respuesta para ext3 (sospecho que necesita volver a crear el directorio para que se reduzca) pero ¿ha intentado forzar un
—
Celada
fsck
? ext3 fsck
tiene un pase de "Optimización del directorio". No sé qué hace eso, pero ¿tal vez reduce los directorios que son demasiado grandes? De todos modos, como punto de datos FWIW, xfs reduce automáticamente directorios a los que se les han eliminado archivos.
¿Has borrado por casualidad los archivos abiertos?
—
Karlson
ufs en los BSD y Mac HFS también reducen los directorios sobre la marcha. Me sorprende saber que ext3 no. ext4 tampoco parece hacerlo.
—
Kyle Jones