1036 votes

Utilisation de ls pour lister les répertoires et leur taille totale

Est-il possible d'utiliser ls dans Unix pour lister la taille totale d'un sous-répertoire et de tout son contenu, par opposition à l'habituel 4K qui (je suppose) est juste le fichier du répertoire lui-même ?

total 12K
drwxrwxr-x  6 *** *** 4.0K 2009-06-19 10:10 branches
drwxrwxr-x 13 *** *** 4.0K 2009-06-19 10:52 tags
drwxrwxr-x 16 *** *** 4.0K 2009-06-19 10:02 trunk

Après avoir parcouru les pages du manuel, je n'ai rien trouvé.

4 votes

Vous voulez utiliser du -s à la place

38 votes

A la recherche de canards : alias ducks='du -cksh * | sort -hr | head -n 15'

1880voto

molf Points 34978

Essayez quelque chose comme :

du -sh *

version courte de :

du --summarize --human-readable *

Explication :

du : D isk U sage

-s : Afficher un résumé pour chaque fichier spécifié. (Equivalent à -d 0 )

-h : Sortie "lisible par l'homme". Utilisez des suffixes d'unités : B yte, K ibibyte (KiB), M ebibyte (MiB), G ibibyte (GiB), T ebibyte (TiB) et P ebibyte (PiB). (BASE2)

72 votes

L'option -c (produire un grand total) est également intéressante.

58 votes

Du --max-depth 1 n'affiche que les tailles de fichiers/dossiers d'une profondeur de 1 dans l'arborescence, plus d'encombrement et facilité pour trouver les grands dossiers dans un dossier.

13 votes

Comment inclure également les fichiers cachés ?

405voto

GraveDigger Points 811

du -sk * | sort -n permettra de trier les dossiers par taille. Utile lorsque vous cherchez à libérer de l'espace..

ou du -sh * | sort -h utilisé lorsque le mode lecture humaine

16 votes

Ajouter un | tail -r pour trier par le plus grand en premier.

80 votes

sort -rn trie les choses dans l'ordre numérique inverse. sort -rn | head -n 10 ne montrera que les premiers, si cela peut vous intéresser.

18 votes

sort -rh fonctionnera très bien avec du -cksh * comme il trie les unités lisibles par l'homme.

140voto

user2969885 Points 51
du -sh * | sort -h

Cette information sera affichée dans un format lisible par l'homme.

6 votes

En savoir plus sort -h ici : gnu.org/software/coreutils/manuel/ Il est surtout là pour trier 103K , 102M , 1.1G etc. Cela devrait être disponible sur de nombreux systèmes aujourd'hui, mais pas tous.

0 votes

Duh -shm * | sort -n ?

13 votes

Fonctionne très bien, un petit ajout du -sh * | sort -rh (-r pour lister les plus gros dossiers en premier)

22voto

Keith Smith Points 1724

La commande que vous voulez est 'du -sk' du = "disk usage" (utilisation du disque)

L'option -k vous donne une sortie en kilo-octets, plutôt que la valeur par défaut des secteurs de disque (blocs de 512 octets).

L'option -s ne listera que les éléments du répertoire de premier niveau (c'est-à-dire le répertoire courant, par défaut, ou le répertoire spécifié sur la ligne de commande). Il est étrange que du ait le comportement inverse de ls à cet égard. Par défaut, du vous donnera récursivement l'utilisation du disque de chaque sous-répertoire. En revanche, ls ne donnera la liste des fichiers que dans le répertoire spécifié. (ls -R vous donne un comportement récursif).

0 votes

J'ai essayé de le faire sur le répertoire racine, mais il essaie toujours de lister les sous-répertoires, ce qui entraîne de nombreux messages.

8voto

Crenshaw Points 75

J'utilise toujours du -sk ( -k indiquant la taille du fichier en kilo-octets) à la place.

6 votes

Ceci devrait être un commentaire, fournissant des informations supplémentaires à la réponse acceptée plus correcte et mieux expliquée par @molf. Il ne doit pas être considéré comme une réponse à part entière.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X