Question Bash: Affiche la taille de chaque sous-répertoire dans un format de liste utilisant la commande 1 line?


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.

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

Quelle commande peut faire ceci ou une combinaison de commandes faciles à taper? du -h donne, mais il affiche tous les sous-dossiers qui ne sont pas ce que je veux. juste les dossiers de répertoires actuels.


84
2018-02-19 15:34


origine




Réponses:


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

43
2018-06-17 23:04





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 aussi essayer:

du -h -s *

Cela utilise -s (--summarize) et imprimera uniquement la taille du dossier lui-même par défaut. En transmettant tous les éléments du répertoire de travail en cours (*), il produit une sortie similaire à celle --max-depth=1 aurait:

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 actuel et la taille totale de tous les dossiers qui y figurent ... mais uniquement jusqu'à une profondeur de 1.

Cette dernière approche calculera la taille totale de tous les articles passés individuellement. Ainsi, il comprend 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 en cours, car cela n'a pas été passé en tant qu'argument.


113
2018-02-19 15:36



Réponse parfaite. Sur Mac OSX le --depth le paramètre n'est pas reconnu. Utilisation du -h -d 1 pour le même résultat. - Dylan


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

5
2017-11-06 14:52



Mais méfiez-vous! Pourquoi vous ne devriez pas analyser la sortie de ls (1) - Kamil Maciorowski


La peine de mentionner le Utilisation du disque NCurses commande shell.

Ncdu est un analyseur d'utilisation de disque avec une interface ncurses. C'est   conçu pour trouver des cochons de l'espace sur un serveur distant où vous n'avez pas de   toute la configuration graphique disponible, mais c'est un outil utile même sur   systèmes de bureau réguliers. Ncdu vise à être rapide, simple et facile à utiliser,   et devrait pouvoir s'exécuter dans n'importe quel environnement POSIX minimal avec   ncurses installés.


1
2018-06-12 12:29