Ceci est complètement inutile, inutile dans l'utilisation pratique, mais un petit article amusant sur les répertoires dans les systèmes * nix. Vendredi, c'est pareil.
Lors des entretiens, des questions ennuyeuses sur les inodes se glissent souvent dans des fichiers tout-en-un, auxquels peu de gens peuvent répondre sainement. Mais si vous creusez un peu plus profondément, vous pouvez trouver des choses curieuses.
Pour comprendre le post en quelques points:
- tout est un fichier. répertoire est également un fichier
- une métadonnée inode inode du fichier est stockée, mais le nom du fichier n'y est pas stocké
- le nom du fichier est stocké dans les données du répertoire
- la taille du répertoire, la même que celle affichée en ls et par défaut à 4 Ko, dépend du nombre de fichiers dans le répertoire et de la longueur de leurs noms
- évidemment, plus il y a de fichiers, plus la taille du répertoire est grande
Et maintenant pour la partie intéressante: créez un répertoire avec un million de fichiers, vérifiez la taille du répertoire, puis essuyez tous les fichiers et regardez la taille du répertoire.
$ mkdir niceDir && cd niceDir
Comme vous pouvez le voir, la taille du répertoire n'a pas changé, même si cela semble :)
Vous ne pouvez fixer la taille du répertoire (sans supprimer) qu'avec fsck (et l'option -D) à l'état non monté.
Mais quand je suis allé chercher pourquoi il en était ainsi, il s'est avéré qu'il y a 10 ans ce comportement était déjà
discuté dans lkml. Et selon les développeurs, le correctif ne vaut tout simplement pas l'effort.