Esto es completamente inútil, innecesario en el uso práctico, pero es una pequeña publicación divertida sobre directorios en sistemas * nix. El viernes es igual.
En las entrevistas, a menudo surgen preguntas aburridas sobre inodes, todo-es-archivos, que pocos pueden responder con sensatez. Pero si profundizas un poco más, puedes encontrar cosas curiosas.
Para entender la publicación algunos puntos:
- Todo es un archivo. el directorio también es un archivo
- En un inodo se almacenan metadatos del archivo, pero el nombre del archivo no se almacena allí
- el nombre del archivo se almacena en los datos del directorio
- el tamaño del directorio, el que se muestra en ls y su valor predeterminado es 4Kb, depende de la cantidad de archivos en el directorio y la longitud de sus nombres
- obviamente, cuantos más archivos, mayor es el tamaño del directorio
Y ahora para la parte interesante: cree un directorio con un millón de archivos, verifique el tamaño del directorio y luego borre todos los archivos y observe el tamaño del directorio.
$ mkdir niceDir && cd niceDir
Como puede ver, el tamaño del directorio no ha cambiado, aunque parece :)
Puede corregir el tamaño del directorio (sin eliminar) solo con fsck (y la opción -D) en el estado desmontado.
Pero cuando busqué por qué es así, resultó que hace 10 años este comportamiento ya se
discutió en lkml. Y según los desarrolladores, la solución simplemente no vale la pena.