Je sais que la taille d'un répertoire lui-même est différente de la taille des fichiers qu'il contient.
Je pense à un répertoire comme une liste des répertoires et fichiers à l'intérieur, donc la taille d'un répertoire doit être liée au nombre de fichiers / répertoires à l'intérieur, avec un minimum de 4096 octets en raison de la contrainte de taille de bloc.
Mais dans mon système, j'ai de nombreux répertoires bien remplis avec 4096 octets, et certains répertoires qui sont considérablement moins peuplés qui sont d'environ 10 mégaoctets. Pouvez-vous m'expliquer pourquoi cela se produit?
Réponses:
Le système de fichiers utilisé et le nombre maximal d'entités dans ce répertoire à tout moment déterminent la taille. Une fois que la taille par défaut réservée au répertoire est épuisée, davantage d'espace est alloué au répertoire. Cependant, lorsque le nombre d'entités diminue, l'espace alloué n'est pas automatiquement libéré. Donc, si, à un moment donné, un répertoire compte 10 millions d'entités, il resterait la même taille si 9 999 999 d'entre elles étaient supprimées. Cela conduit à des situations intéressantes comme dans cet article Unix et Linux .
Cela ne vaut pas nécessairement pour les autres systèmes de fichiers. Les
ext{2,3,4}
systèmes de fichiers sont affectés. NTFS l'est, dans une moindre mesure.tmpfs
et btrfs ne le sont pas. ZFS est plutôt conservateur, j'ai obtenu une sortie de2
pour la deuxièmestat
commande.En relation:
la source