2013-02-19 15:34:27 +0000 2013-02-19 15:34:27 +0000
104
104

Afficher la taille de chaque sous-répertoire sous forme de liste en utilisant une ligne de commande dans Bash ?

Je veux obtenir une liste des annuaires et de leur taille dans un format de liste comme celui qu'on obtient quand on fait un ls -l.

Le truc c'est qu'il y a une commande d'une ligne qui peut faire ça ? Je vois que d'autres ont de longues commandes juste pour faire cela. C'est tout simplement trop long.

Quelle commande peut faire cela ou quelle combinaison de commandes peut être facilement tapée ? du -h la donne, mais elle affiche tous les sous-dossiers, ce qui n'est pas ce que je veux. juste les dossiers de répertoires actuels.

Réponses (4)

126
126
126
2013-02-19 15:36:20 +0000

Essayez ceci

du -h --max-depth=1

Sortie

oliver@home:/usr$ sudo du -h --max-depth=1
24M ./include
20M ./sbin
228M ./local
4.0K ./src
520M ./lib
8.0K ./games
1.3G ./share
255M ./bin
2.4G .

Alternative

Si --max-depth=1 est un peu trop long à votre goût, vous pouvez aussi essayer d'utiliser :

du -h -s *

Ceci utilise -s (--summarize) et n'imprimera que la taille du dossier lui-même par défaut. En passant tous les éléments dans le répertoire de travail actuel (*), il produit un résultat similaire à celui de --max-depth=1 :

Sortie

oliver@cloud:/usr$ sudo du -h -s *
255M bin
8.0K games
24M include
520M lib
0 lib64
228M local
20M sbin
1.3G share
4.0K src

La différence est subtile. La première approche affichera la taille totale du répertoire de travail en cours et la taille totale de tous les dossiers qu'il contient… mais seulement jusqu'à une profondeur de 1.

La seconde approche calculera la taille totale de tous les éléments passés individuellement. Ainsi, elle inclut le lien symbolique lib64 dans la sortie, mais exclut les éléments cachés (dont le nom commence par un point). Il lui manque également la taille totale du répertoire de travail actuel, car elle n'a pas été passée en argument.

79
79
79
2016-06-17 23:04:29 +0000

Vous voulez probablement voir les annuaires classés par taille :

$ du -hs * | sort -hr

856M lib
746M share
612M lib64
312M src
267M java
239M bin
179M sbin
173M local
93M i686-w64-mingw32
72M libexec
26M include
20M puppet
772K X11R6
20K man
4.0K games
4.0K etc
0 tmp
6
6
6
2014-11-06 14:52:37 +0000

Imprimez la taille de tous les dossiers de fichiers et des fichiers cachés sur le disque :

el@dev /home/el $ du -sh `ls -a`
258M .
265M ..
4.0K .classpath
258M .git
4.0K .gitignore
9.0K nbactions.xml
12K README
20K .README.swp
4.0K run.sh
23K XmlPostPropagate.php
3
3
3
2016-06-12 12:29:56 +0000

Il convient de mentionner la commande shell NCurses Disk Usage .

Ncdu est un analyseur d'utilisation du disque avec une interface ncurses. Il est conçu pour trouver les porcs de l'espace sur un serveur distant où vous n'avez pas toute une configuration graphique disponible, mais c'est un outil utile même sur les systèmes de bureau ordinaires. Ncdu se veut rapide, simple et facile à utiliser, et devrait pouvoir fonctionner dans n'importe quel environnement minimal de type POSIX avec ncurses installé.