2010-08-03 17:58:26 +0000 2010-08-03 17:58:26 +0000
142
142

Elencare le dimensioni della cartella corrente con il terminale?

Voglio un elenco delle cartelle della directory corrente o di quelle che ho specificato con le loro dimensioni.

Ho provato con du ma ottengo solo le dimensioni delle directory che ho specificato (du . ./f1), e ls non mostra le dimensioni delle cartelle.

Come faccio senza scripting ?

Risposte (9)

223
223
223
2010-08-03 18:29:55 +0000

Se si desidera mostrare tutte le directory della directory corrente:

$ du -sh */
788K foo/
500K bar/
931K baz/
``` ```
$ du -sh /path/to/dir/*/
48K /path/to/dir/dir1/
4.0K /path/to/dir/dir2/
6.7M /path/to/dir/dir3/
20K /path/to/dir/dir4/
8.0K /path/to/dir/dir5/
44K /path/to/dir/dir6/

Per mostrarle a partire da un'altra directory:

&001 &001

Se si desidera assicurarsi che le directory con nomi che iniziano con un punto siano incluse, fare prima shopt -s dotglob.

19
19
19
2013-03-02 05:23:56 +0000

Su un Mac, l'opzione –max-profondità è sostituita da -d [profondità]. Quindi, per vedere un elenco leggibile dall'uomo dell'unità root più 2 livelli di profondità, usare i seguenti:

du -hd 2 /*
``` &001 


Nota: questo comando esporrà i due livelli di directory principali della vostra root. Questo include l'attraversamento di un livello nei vostri Volumi_, ed elencherà le dimensioni sommarie di ogni directory di primo livello in ciascuno dei volumi allegati. A seconda di ciò che avete allegato, questo comando potrebbe richiedere un certo tempo per essere completato.
14
14
14
2010-08-03 19:32:55 +0000

Un'altra possibilità è l'opzione –max-profondità.

du -h --max-depth=1 .

elencherà tutte le directory e i file sotto la cartella corrente con le dimensioni.

Profondità 2 elencherà un ulteriore livello di cartelle.

5
5
5
2010-08-03 18:09:10 +0000

Prova:

$ du -s ./f1

o

$ du -sh ./f1

per dimensioni più leggibili.

4
4
4
2018-03-02 22:17:45 +0000

Basandosi sulla risposta accettata, questo comando vi mostrerà le dimensioni delle cartelle nella directory, e le elencherà anche per dimensione per una più facile interpretazione:

$ du -sh */ | sort -rn
2
2
2
2015-06-30 15:39:04 +0000

$ du --max-depth=1 /var/www/ | sort -n -r

2
2
2
2016-06-12 12:26:54 +0000

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

Ncdu è un analizzatore di utilizzo del disco con interfaccia ncurses. È stato progettato per trovare gli space hogs 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 minimo simile a POSIX con ncurses installato.

1
1
1
2017-03-27 23:47:09 +0000

Ecco uno script POSIX che funzionerà con:

  • Un file
  • File
  • File
  • Una directory
  • Directory
#!/bin/sh
ls -ARgo "$@" | awk '{q += $3} END {print q}'

Fonte

1
1
1
2017-09-28 15:32:12 +0000

Su Mac, è possibile installare l'implementazione GNU (Linux) di du con Homebrew (brew install coreutils). Poi, per esempio:

gdu folder -shL --exclude=.git
``` &001 


dove 


- `gdu` è il nome dato all'implementazione GNU di `du` (di default Homebrew non nasconde `/usr/bin/du`); 
- `s` produce un grande totale per la cartella specificata (omettere se si vuole vedere la ripartizione); 
- `h` produce dimensioni leggibili dall'uomo; 
- `L` segue i link simbolici; 
- `--exclude=.git` esclude la directory git all'interno della cartella specificata (questo è solo un esempio). 


Si possono ignorare più cartelle aggiungendo `--exclude=blah`. Si possono anche specificare più cartelle contemporaneamente (cioè `gdu folder1 folder2 ...`) e, in questo caso, si possono combinare tutti i subtotali in un'unica dimensione usando l'opzione `c`.