web-dev-qa-db-fra.com

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

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

La chose est-ce qu'il y a une commande d'une ligne qui peut faire ceci? Je vois que les autres ont de longues commandes juste pour sortir ceci. C'est trop long.

Quelle commande peut faire cela ou une combinaison de commandes faciles à saisir? du -h le donne, mais il affiche tous les sous-dossiers, ce qui n'est pas ce que je veux. juste les dossiers de répertoires actuels.

97
Patoshi パトシ

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
62
raychi

Essaye ça

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 *

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

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. L'ancienne approche affichera la taille totale du répertoire de travail actuel et la taille totale de tous les dossiers qu'il contient ... mais uniquement 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 cela n’a pas été passé comme argument.

119
Der Hochstapler

Imprimez les tailles de tous les dossiers de fichiers et les 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
6
Eric Leschinski

Il convient de mentionner la commande NCurses Disk Usage Shell.

Ncdu est un analyseur d'utilisation du disque avec une interface ncurses. Il est conçu pour rechercher des ressources d'espace sur un serveur distant sur lequel aucune configuration graphique n'est disponible, mais c'est un outil utile même sur des systèmes de bureau classiques. Ncdu se veut rapide, simple et facile à utiliser, et devrait pouvoir fonctionner dans n’importe quel environnement minimal semblable à POSIX où ncurses est installé.

2
Ray