Questa domanda ha già una risposta qui:
Sotto Linux, sto cercando un comando per elencare il file più grande e / o le directory più grandi in una directory.
Questa domanda ha già una risposta qui:
Sotto Linux, sto cercando un comando per elencare il file più grande e / o le directory più grandi in una directory.
Risposte:
Da qualsiasi directory:
du -a | sort -n -r
Il comando seguente mostra un livello di directory e le loro dimensioni
du --max-depth = 1 / path | ordina -r -k1,1n
Se uno di questi sporge davvero (l'ultimo dell'elenco è il più grande a causa di sort -r
), allora riesegui il comando su quella directory e poi vai avanti fino a trovare la directory / file offensivo.
Se tutto ciò che vuoi è fare solo i dieci file più grandi
find / home -type f -exec du -s {} \; | ordina -r -k1,1n | testa
sort -r
o meno. C'è un modo per ottenere il maggior numero in alto?
sort
o sort -r
. Sto fraintendendo come funziona -r? Immagino che non sia un grosso problema. Il tuo esempio è molto utile e mi ha fornito le informazioni di cui avevo bisogno.
sort
I have ( sort (GNU coreutils) 8.13
in Ubuntu 12.04.3) l'opzione -r
non funziona se -n
segue immediatamente -k
( -k1,1n
). Questo ordine delle opzioni funziona: sort -rnk1,1
.
Un'utilità chiamata ncdu
ti fornirà le informazioni che stai cercando.
sudo apt-get install ncdu
Su OS X, può essere installato usando Homebrew:
brew install ncdu
Questo post ti aiuterà bene:
cd /path/to/some/where
du -a /var | sort -n -r | head -n 10
du -hsx * | sort -rh | head -10
Prova il seguente one-liner (visualizza i 20 file più grandi nella directory corrente):
ls -1Rs | sed -e "s/^ *//" | grep "^[0-9]" | sort -nr | head -n20
o con dimensioni leggibili dall'uomo:
ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20
Il secondo comando per funzionare correttamente su OSX / BSD (come
sort
non ha-h
), è necessario installaresort
dacoreutils
.
Quindi questi alias sono utili da avere nei tuoi file rc (ogni volta che ne hai bisogno):
alias big='du -ah . | sort -rh | head -20'
alias big-files='ls -1Rhs | sed -e "s/^ *//" | grep "^[0-9]" | sort -hr | head -n20'
du -sh /path * | sort -nr | grep G
G per file / directory GIG (per eliminare piccoli)
G
nel nome del file.