Come scoprire le migliori directory o file che richiedono molto spazio?


11

Il mio disco sta esaurendo lo spazio:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
...
/dev/sda7       803G  715G   48G  95% /home

Vorrei passare attraverso l'intera directory home e scoprire le prime 10 directory o file che richiedono molto spazio, per decidere chi deve essere rimosso.

du -sh *può vedere le dimensioni di tutte le sottodirectory, ma ottiene solo la cartella corrente. Potrei aver bisogno di dividere in molti sottodir rispettivamente rispettivamente e ricorsivamente per capire chi sono i colpevoli di cui ho bisogno.

C'è un buon modo per farlo?

Risposte:


5

Se puoi usare una GUI prova Baobab . Questo è uno strumento grafico per analizzare l'utilizzo dello spazio sul disco rigido.


10

ncdu è un'opzione della riga di comando che analizza le directory ed elenca l'utilizzo del disco dal più alto al più basso. È il mio strumento per questo.

Dovrai comunque immergerti in modo ricorsivo in questo modo, ma è un bel modo semplice per farlo.


9

Usa questo comando:

t=$(df|awk 'NR!=1{sum+=$2}END{print sum}');du / –exclude /proc –exclude /sys –max-depth=1|sed '$d'|sort -rn -k1 | awk -v t=$t 'OFMT="%d" {M=64; for (a=0;a<$1;a++){if (a>c){c=a}}br=a/c;b=M*br;for(x=0;x<b;x++) {printf "\033[1;31m" "|" "\033[0m"}print " "$2" "(a/t*100)"% total"}'

Ti mostrerà il tipo di grafico nella riga di comando che mostra le directory che consumano la maggior parte dello spazio in percentuale.

Se vuoi analizzare l' /homeunico - puoi specificarlo nel comando in questo modo:

t=$(df|awk 'NR!=1{sum+=$2}END{print sum}');du /home –exclude /proc –exclude /sys –max-depth=1|sed '$d'|sort -rn -k1 | awk -v t=$t 'OFMT="%d" {M=64; for (a=0;a<$1;a++){if (a>c){c=a}}br=a/c;b=M*br;for(x=0;x<b;x++) {printf "\033[1;31m" "|" "\033[0m"}print " "$2" "(a/t*100)"% total"}'

Sembrerà che: inserisci qui la descrizione dell'immagine

Tratto da qui .


9

du | ordina -rn | testa

  • du = Uso del disco
  • ordina usando l'ordine numerico, al contrario
  • le prime dieci righe

4

+1 per Baobab. sulla riga di comando, di solito utilizzo du -hcsx *o du -hcsx * | sort -h( ho bisogno di una versione recente non riuscita di sort) e quindi controllo le sottodirectory mentre proseguo.

Inoltre, mcha una caratteristica ordinata per il calcolo delle dimensioni della sottodirectory premendo Ctrl+ Spacesopra di essa (premere Ctrl+ Spacesopra ..per far calcolare la dimensione per tutte le sottodirectory. Quindi è possibile selezionare l'ordinamento per dimensione nel menu.


2
dalla riga di comando, dovresti provare ncdu. Fondamentalmente è un ncurses du.
Rob,

1

Prova questo:

du -a /dir | sort -nr | cut -f2 | xargs du -sh | head -n 10

0

Un altro preferito della GUI: kdirstat

Ha buone capacità di drilldown e un menu di strumenti (estensibili) per aiutarti a eliminare / comprimere i tuoi file.

Ho anche uno script da riga di comando che chiamo dir_usage che ho caricato su pastebin.


-1
find . -type f -print0 | xargs -0 du | sort -n | tail -10 | cut -f2 | xargs -I{} du -sh {}

La riga di comando sopra fa il seguente (in ordine):

  • Trova tutti i file (non le directory) nella cartella corrente
  • Visualizza l'utilizzo per ciascuno di essi
  • Ordina i risultati numericamente
  • Usa solo le ultime 10 righe (massimo utilizzo)
  • Taglia i 10 nomi di file (la prima colonna è use, la seconda è il nome file)
  • Visualizza l'utilizzo per ciascun nome file (in formato umano)

Ciò comporterà un elenco di dimensioni leggibili dall'uomo dei 10 file più grandi all'interno della cartella e delle sottocartelle correnti.


3
Puoi espandere la tua risposta?
50-3
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.