147 votes

Afficher la taille de chaque sous-répertoire dans un format de liste en utilisant une commande d'une ligne en Bash ?

Je veux obtenir une liste des répertoires et de leurs tailles dans un format de liste comme celui que vous obtenez lorsque vous faites une recherche de type ls -l .

Le problème est qu'il existe une commande en une ligne qui peut faire cela ? Je vois que d'autres ont des commandes longues juste pour sortir ceci. C'est trop long.

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

141voto

diegogs Points 624

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 également essayer d'utiliser :

du -h -s *

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

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 affiche la taille totale du répertoire de travail actuel et la taille totale de tous les dossiers qu'il contient... mais seulement jusqu'à une profondeur de 1.

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

140voto

Tayacan Points 116

Vous voulez probablement voir les répertoires 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

6voto

Eric Leschinski Points 6388

Imprimez la taille de tous les fichiers, dossiers et fichiers cachés du 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

6voto

Shebanator Points 111

Il convient de mentionner le Utilisation du disque NCurses Shell.

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X