On Wednesday 30 January 2008, Philippe Ney wrote: > Après avoir effacer tous les fichiers, la taille du répertoire est > encore de 3 Mo. > > Un touch du répertoire ou du . qu'il contient ou la création d'un > fichier vide à l'intérieur du répertoire n'a aucun effet. > > Y a-t-il un moyen de libérer les blocks inutilisés et faire revenir > la taille du répertoire à 4k ?
Tout-a-fait normal ! Il faut revenir a la maniere dont le FS (file systeme) est organise ! Un directory n'est rien d'autre qu'un "fichier" de data, contenant les information necessaire a l'acces du contenu du directory. DOnc, lors de la creation d'un directory vide, un premier block de 4k est alloue a ce directory pour y stocker ses infos. ceci peut se voir en faisant : mkdir mydir ls -ld mydir Puis, a mesure que le directory se remplit, les entrees viennent occuper de la place dans le block de 'data'. A un moment donne, celui-ci est plein et engendre l'attribution d'un autre block de 4k "au" directory. ET ainsi de suite. Raison pour laquelle, on peut determiner aproximativement le nombre maximum de "contenu" d'un directory par l'examen de sa taille. Or, le FS attribue des blocks lorsqu'un fichier s'etend en taille, mais ne libere pas ceux-ci sans une commande explicite de "troncation". Ce genre de commande n'existe pas pour les directories... Il est donc necessaire de "re-creer" le directory pour en reduire la taille. On peut donc envisager : mkdir newdir mv currentdir/* newdir rmdir currentdir mv newdir currentdir Il n'est bien sur pas necessaire de passer par la phase de deplacement des fichiers d'un directory sui celui-ci est deja vide. dc _______________________________________________ gull mailing list [email protected] http://lists.alphanet.ch/mailman/listinfo/gull
