2010-06-05 16 views
0

Possible en double:
When running ls -l, why does the filesize on a directory not match the output of du?Quelle est la taille des dossiers montrent ls-

Salut. Je suis intéressant en information ce qui me montre la sortie ls -la dans Linux. Donc, la taille par défaut est 4K. Mais s'il y a beaucoup de fichiers, peut-être avec une taille nulle, comme PHP sessions =), la taille! = 4K. Qu'est-ce qui me montre ls -la? Et après, quand je nettoie ce dossier, je vois la dernière taille maximale.

+0

Voir http://stackoverflow.com/questions/1012488/when-running-ls-l-why-does-the-filesize-on-a-directory-not-match-the-output-of – kennytm

+0

Vous pourriez veux poser cette question ici à la place: http://superuser.com/ A bientôt =) – Andree

Répondre

1

ls -al vous donnera l'espace occupé par le répertoire lui-même, pas les fichiers qu'il contient.

En tant que tel, il a une taille minimum. Quand un répertoire est créé, il lui est donné beaucoup d'espace pour stocker les informations de fichier qui sont un nombre défini d'octets par fichier (disons que 64 octets pensent que le nombre pourrait être différent).

Si la taille initiale était 4K, cela permettrait jusqu'à 64 fichiers. Une fois que vous avez mis plus de 64 fichiers dans le répertoire, il devrait être développé.


Quant à votre commentaire:

La raison pour laquelle il ne peut pas obtenir plus petit lorsque vous supprimez tous les fichiers qu'il est parce qu'il n'y a généralement pas de réel avantage. Il est juste laissé à la même taille, de sorte qu'il ne doit pas être à nouveau développé la prochaine fois que vous y mettez un paquet de fichiers (il a tendance à supposer que le comportement passé est un indicateur du comportement futur).

Si vous voulez réduire l'espace occupé, il y a une vieille astuce pour cela. Pour réduire la taille de /tmp/qq, créez un nouveau /tmp/qq2, copiez tous les fichiers (après avoir supprimé ceux dont vous n'avez pas besoin), puis renommez simplement /tmp/qq en /tmp/qq3 et /tmp/qq2 en /tmp/qq. Voila! Oh oui, éventuellement supprimer /tmp/qq2.

+0

Mais pourquoi, quand je nettoie le répertoire, la taille de ls ne change pas? Rm -rf * – libbkmz

+0

Ok Est-ce que Folder utilise cet espace? Je trouve le dossier avec 684M)) Et comment je peux diminuer la taille de celui-ci? – libbkmz

+0

@Bkmz, voir ma mise à jour pour l'astuce utilisée pour le faire. Il peut y avoir d'autres façons de le faire en fonction du système de fichiers utilisé, mais c'est fondamentalement la façon dont nous l'avons fait dans l'ancien temps (et cela fonctionne toujours). – paxdiablo