2009-03-24 6 views
4

je lance la commande, sans succès, pour obtenir la taille des répertoires (fichiers appartiennent à l'intérieur de la taille d'un répertoire)Impossible d'obtenir la taille d'un répertoire par ls

ls -lSrh 

Je ne reçois que kilobits pour la taille répertoires alors que leur contenu est plus que cela.

Comment pouvez-vous lister la taille des répertoires, y compris leur contenu dans le numéro par ls?

Répondre

20
du -sh directory_name 

ls va vous donner la taille de l'entrée dans le répertoire , pas du contenu du répertoire. Sur la base de mon survol rapide de man ls, il ne semble pas y avoir moyen de faire descendre ls et de calculer la taille des répertoires (probablement parce que ce serait une opération coûteuse).

+0

Et sur toute la saveur de ls disponible sur Windows (j'ai vérifié Cygwin, GnuWin32 et MSYS), les répertoires ont tous une taille nulle. Vous ne voyez même pas la taille de la liste des entrées du répertoire comme dans les saveurs (la plupart?) * Nix. – RBerteig

+0

Je n'ai pas trouvé d'option pour mettre les répertoires dans l'ordre en fonction de la taille. Comment peux-tu faire ça? –

+0

C'est ashawley

3

Si vous souhaitez obtenir la taille des répertoires, vous pouvez utiliser

du -sh 
1

du -hs est grand jusqu'à ce que vous avez un grand répertoire. Par exemple, si vous stockez des fichiers de cache (par exemple le cache de système de fichiers pour Rails) ou des fichiers téléchargés, ... avec un schéma partitionné, comme "cache/123/456/789/real_files" et vous avez beaucoup de eux, du prend une éternité, bloquant finalement tous les IO.

Je n'ai pas une meilleure solution, mais cela doit être pris en compte avant de l'exécuter sur le serveur de production pendant les heures de pointe.

1

Miser sur la réponse de Sean lumineux, vous pouvez faire ce qui suit (en BASH)

for each in $(echo */ | sed "s/ /\n/g" | sed "s/\///g"); do du -hs "$each"; done; 

Cela obtenir un contenu complet du répertoire pour tous les répertoires dans le répertoire courant.

Questions connexes