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

Visualizzare le dimensioni di ogni sottodirectory in un formato di lista usando un comando di una riga in Bash?

Voglio ottenere un elenco delle directory e delle loro dimensioni in un formato lista come quello che si ottiene quando si fa un ls -l.

Il fatto è che c'è un comando di una linea che può fare questo? Vedo che altri hanno lunghi comandi solo per produrre questo. Questo è troppo lungo.

Quale comando può fare questo o una combinazione di comandi che può essere facilmente digitata? du -h lo dà, ma visualizza tutte le sottocartelle che non è quello che voglio. solo le cartelle delle directory correnti.

Risposte (4)

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

Prova questo

du -h --max-depth=1

Output

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 .

Alternativa

Se --max-depth=1 è un po’ troppo lungo per i tuoi gusti, puoi anche provare a usare:

du -h -s *

Questo usa -s (--summarize) e stamperà solo la dimensione della cartella stessa per default. Passando tutti gli elementi nella directory di lavoro corrente (*), produce un output simile a quello di --max-depth=1:

Output

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 differenza è sottile. Il primo approccio mostrerà la dimensione totale della directory di lavoro corrente e la dimensione totale di tutte le cartelle che sono contenute in essa… ma solo fino a una profondità di 1.

Il secondo approccio calcolerà la dimensione totale di tutti gli elementi passati individualmente. Quindi, include il symlink lib64 nell'output, ma esclude gli elementi nascosti (il cui nome inizia con un punto). Manca anche la dimensione totale per la directory di lavoro corrente, poiché questa non è stata passata come argomento.

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

Probabilmente volete vedere le directory ordinate per dimensione:

$ 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

Stampa le dimensioni di tutti i file, cartelle e file nascosti sul disco:

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

Vale la pena menzionare il comando di shell NCurses Disk Usage .

Ncdu è un analizzatore dell'uso del disco con un'interfaccia ncurses. È progettato per trovare gli ingorghi di spazio su un server remoto dove non si ha a disposizione un'intera configurazione grafica, ma è uno strumento utile anche sui normali sistemi desktop. Ncdu mira ad essere veloce, semplice e facile da usare, e dovrebbe essere in grado di funzionare in qualsiasi ambiente POSIX-like minimo con ncurses installato.