Come trovare le directory più grandi o i file più grandi? [duplicare]


33

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.


Lo strumento più utile che ho trovato è xdiskusage ( xdiskusage.sourceforge.net ) Questo mostra graficamente dove sono i file - per dimensione. Ottimo strumento! (e funziona direttamente con X11)
jcoppens

In che modo questo è duplicato di qualche domanda che è stata chiusa come fuori tema? Non ha senso.
Kenorb,

Risposte:


17

Da qualsiasi directory:

du -a | sort -n -r


1
questo mostra i singoli file, ma la domanda riguarda anche le directory
knocte

du senza argomenti riassume l'utilizzo del disco da parte delle directory. du con -a produce le stesse informazioni di directory e include l'utilizzo del disco anche per i singoli file.
Brent Worden,

impossibile eseguire l'ordinamento quando sei a corto di spazio: = (
Jonathan Henson,

28

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


il numero più grande finisce in fondo per me, non importa se lo aggiungo sort -ro meno. C'è un modo per ottenere il maggior numero in alto?
squarecandy,

È necessario indicare per ordinare per quale colonna si desidera ordinare e che è numerico (non alfanumerico). Ecco cosa farebbe -k1,1rn. Per impostazione predefinita, l'ordinamento utilizza l'ordinamento alfanumerico nella prima colonna.
Marcin,

Sì, si sta ordinando correttamente con quello, ma è in ordine crescente numeri da bassi a alti, non importa se includo sorto 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.
squarecandy,

2
Con sortI have ( sort (GNU coreutils) 8.13in Ubuntu 12.04.3) l'opzione -rnon funziona se -nsegue immediatamente -k( -k1,1n). Questo ordine delle opzioni funziona: sort -rnk1,1.
pabouk,

27

Un'utilità chiamata ncduti fornirà le informazioni che stai cercando.

sudo apt-get install ncdu

Su OS X, può essere installato usando Homebrew:

brew install ncdu

2
+1 Non ne avevo mai sentito parlare prima, funzionava benissimo anche su Mac.
Andrew E

Questa è una soluzione molto più bella di entrambe le risposte più elevate.
AlexLordThorsen,

Questo è strabiliante. Suggerisci questo su tutte le altre risposte!
Allen Gingrich,

4

du -sk * | ordina -nr | testa -1

Questo mostrerà la directory / file più grande in una directory in KB. La modifica del valore principale determinerà i primi file / directory x.


2

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

2

Il comando seguente restituirà i primi 10 file più grandi dati /path

du -a -h / percorso | ordina -h -r | capo -n 10

Mi piace usare le -hopzioni per la leggibilità. Entrambi due hanno sortbisogno di avere -h.


1

Uso

ls -A | xargs -I artifact du -ms artifact | sort -nr

Facoltativamente, è possibile aggiungere una pipe e utilizzare head -5


0

Usa du. Prova questo per ordinare il risultato:

du | sort -n

0

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 sortnon ha -h), è necessario installare sortda coreutils.

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'

-5
du -sh /path * | sort -nr | grep G

G per file / directory GIG (per eliminare piccoli)


Questo elenca tutti i file e le cartelle, mostrando le dimensioni. Non ordina la dimensione in base al valore dei byte di K, M o G, a meno che non la GRIP come hai mostrato
Canadian Luke REINSTATE MONICA

Inoltre troverà qualsiasi cosa con a Gnel nome del file.
Kevin Panko,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.