it-swarm-eu.dev

Utilità Linux per trovare i file/directory più grandi

Sto cercando un programma per mostrarmi quali file/directory occupano più spazio, qualcosa del tipo:

74% music
 \- 60% music1
 \- 14% music2
12% code
13% other

So che è possibile in KDE3, ma preferirei non farlo - KDE4 o riga di comando sono preferiti.

131
Robert Munteanu

Per trovare i 10 file più grandi (linux/bash):

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

Per trovare le 10 directory più grandi:

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

L'unica differenza è -type {d:f}.

Gestisce i file con spazi nei nomi e produce nell'output dimensioni di file leggibili dall'uomo. Il più grande file elencato per ultimo. L'argomento di coda è il numero di risultati che vedi (qui il 10 più grande).

Esistono due tecniche utilizzate per gestire gli spazi nei nomi dei file. Il find -print0 | xargs -0 utilizza delimitatori nulli invece di spazi e il secondo xargs -I{} utilizza le nuove righe invece degli spazi per terminare gli elementi di input.

esempio:

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

  76M    ./snapshots/projects/weekly.1/onthisday/onthisday.tar.gz
  76M    ./snapshots/projects/weekly.2/onthisday/onthisday.tar.gz
  76M    ./snapshots/projects/weekly.3/onthisday/onthisday.tar.gz
  76M    ./tmp/projects/onthisday/onthisday.tar.gz
  114M   ./Dropbox/snapshots/weekly.tgz
  114M   ./Dropbox/snapshots/daily.tgz
  114M   ./Dropbox/snapshots/monthly.tgz
  117M   ./Calibre Library/Robert Martin/cc.mobi
  159M   ./.local/share/Trash/files/funky chicken.mpg
  346M   ./Downloads/The Walking Dead S02E02 ... (dutch subs nl).avi
130
Sean

Io uso sempre ncdu. È interattivo e molto veloce.

199
Daenyth

Per una rapida visione:

du | sort -n

elenca tutte le directory con la più grande.

du --max-depth=1 * | sort -n

o, ancora, evitando il ridondante *:

du --max-depth=1 | sort -n

elenca tutte le directory nella directory corrente con la più grande.

(-n parametro da ordinare è richiesto in modo che il primo campo sia ordinato come un numero piuttosto che come testo, ma questo preclude l'utilizzo del parametro -h a du poichè abbiamo bisogno di un numero significativo per l'ordinamento)

Altri parametri disponibili sono disponibili se si desidera seguire collegamenti simbolici (l'impostazione predefinita non è seguire i collegamenti simbolici) o solo mostrare le dimensioni dei contenuti della directory, ad eccezione delle sottodirectory, ad esempio. du può anche includere nell'elenco la data e l'ora in cui è stato modificato l'ultimo file nella directory.

37
mas

Per la maggior parte delle cose, preferisco gli strumenti CLI, ma per l'utilizzo del disco, mi piace molto filelight . La presentazione è più intuitiva di qualsiasi altro strumento di gestione dello spazio che ho visto.

Filelight screenshot

23

Filelight è migliore per gli utenti di KDE, ma per completezza (il titolo della domanda è generale) Devo menzionare Baobab è incluso in Ubuntu, alias Disk Usage Analyzer:

enter image description here

20
Nicolas Raoul

Uno strumento GUI,KDirStat, mostra i dati sia in forma di tabella che graficamente. Puoi vedere molto velocemente dove viene utilizzata la maggior parte dello spazio.

 enter image description here

Non sono sicuro che questo sia esattamente lo strumento KDE che non volevi, ma penso che debba ancora essere citato in una domanda come questa. È buono e molte persone probabilmente non lo sanno - l'ho saputo solo di recente da solo.

8
Jonik

Una combinazione è sempre il miglior trucco su Unix.

du -sk $(find . -type d) | sort -n -k 1

Mostrerà le dimensioni delle directory in KB e ordinerà per dare il più grande alla fine.
La visualizzazione ad albero richiederà tuttavia un po 'più fu ... è davvero necessaria?

Si noti che questa scansione è nidificata attraverso le directory in modo da contare nuovamente le sottodirectory per le directory superiori e la directory di base . verrà visualizzata alla fine come somma totale di utilizzo.

È tuttavia possibile utilizzare un controllo di profondità sulla ricerca per cercare una profondità specifica.
E, molto più coinvolto con la scansione in realtà ... dipende da cosa vuoi. Il controllo di profondità di find con -maxdepth e -mindepth può limitare a una specifica profondità di sottodirectory.


Ecco una variazione raffinata per il tuo problema troppo lungo

find . -type d -exec du -sk {} \; |  sort -n -k 1
5
nik

Mi piace gt5 . È possibile navigare nella struttura ad albero e aprire sottodirectory per eseguire il drill-down per ulteriori dettagli. Utilizza un browser web in modalità testo, come lynx, per visualizzare i risultati. Installa elinks per i migliori risultati.

alt text

3

Anche se non ti dà un output annidato come quello, prova du

du -h /path/to/dir/

Eseguendolo sulla mia cartella Documenti sputa quanto segue:

josh-hunts-macbook:Documents joshhunt$ du -h
  0B    ./Adobe Scripts
  0B    ./Colloquy Transcripts
 23M    ./Electronic Arts/The Sims 3/Custom Music
  0B    ./Electronic Arts/The Sims 3/InstalledWorlds
364K    ./Electronic Arts/The Sims 3/Library
 77M    ./Electronic Arts/The Sims 3/Recorded Videos
101M    ./Electronic Arts/The Sims 3/Saves
 40M    ./Electronic Arts/The Sims 3/Screenshots
1.6M    ./Electronic Arts/The Sims 3/Thumbnails
387M    ./Electronic Arts/The Sims 3
387M    ./Electronic Arts
984K    ./English Advanced/Documents
1.8M    ./English Advanced
  0B    ./English Extension/Documents
212K    ./English Extension
100K    ./English Tutoring
5.6M    ./IPT/Multimedia Assessment Task
720K    ./IPT/Transaction Processing Systems
8.6M    ./IPT
1.5M    ./Job
432K    ./Legal Studies/Crime
8.0K    ./Legal Studies/Documents
144K    ./Legal Studies/Family/PDFs
692K    ./Legal Studies/Family
1.1M    ./Legal Studies
380K    ./Maths/Assessment Task 1
388K    ./Maths
[...]

Quindi puoi ordinare l'output eseguendo il piping attraverso sort

du /path/to/dir | sort -n
2
Josh Hunt

Sebbene sia utile trovare l'utilizzo percentuale del disco di ciascun file/directory, la maggior parte delle volte è sufficiente conoscere i file/directory più grandi all'interno del disco.

Quindi il mio preferito è questo:

# du -a | sort -n -r | head -n 20

E l'output è come questo:

28626644        .
28052128        ./www
28044812        ./www/vhosts
28017860        ./www/vhosts/example.com
23317776        ./www/vhosts/example.com/httpdocs
23295012        ./www/vhosts/example.com/httpdocs/myfolder
23271868        ./www/vhosts/example.com/httpdocs/myfolder/temp
11619576        ./www/vhosts/example.com/httpdocs/myfolder/temp/main
11590700        ./www/vhosts/example.com/httpdocs/myfolder/temp/main/user
11564748        ./www/vhosts/example.com/httpdocs/myfolder/temp/others
4699852         ./www/vhosts/example.com/stats
4479728         ./www/vhosts/example.com/stats/logs
4437900         ./www/vhosts/example.com/stats/logs/access_log.processed
401848          ./lib
323432          ./lib/mysql
246828          ./lib/mysql/mydatabase
215680          ./www/vhosts/example.com/stats/webstat
182364          ./www/vhosts/example.com/httpdocs/tmp/aaa.sql
181304          ./www/vhosts/example.com/httpdocs/tmp/bbb.sql
181144          ./www/vhosts/example.com/httpdocs/tmp/ccc.sql
1
trante

Ecco lo script che lo fa automaticamente per te.

http://www.thegeekscope.com/linux-script-to-find-largest-files/

Di seguito è riportato l'output di esempio dello script:

**# sh get_largest_files.sh / 5**

[SIZE (BYTES)]     [% OF DISK] [OWNER]         [LAST MODIFIED ON]        [FILE] 

56421808           0%           root           2012-08-02 14:58:51       /usr/lib/locale/locale-archive
32464076           0%           root           2008-09-18 18:06:28       /usr/lib/libgcj.so.7rh.0.0
29147136           0%           root           2012-08-02 15:17:40       /var/lib/rpm/Packages
20278904           0%           root           2008-12-09 13:57:01       /usr/lib/xulrunner-1.9/libxul.so
16001944           0%           root           2012-08-02 15:02:36       /etc/selinux/targeted/modules/active/base.linked

Total disk size: 23792652288 Bytes
Total size occupied by these files: 154313868 Bytes  [ 0% of Total Disc Space  ]

*** Note: 0% represents less than 1% ***

Potresti trovare questo script molto utile e utile!

1
Kam

Un'altra alternativa è ageu che suddivide lo spazio su disco con il tempo dell'ultimo accesso, il che rende più facile individuare i file sprecanti spazio.

Funziona anche su un server senza X Windows offrendo pagine web temporanee in modo che l'utilizzo possa essere analizzato da remoto, con grafici. Supponendo che l'indirizzo IP del server sia 192.168.1.101, è possibile digitare questo sulla riga di comando del server

agedu -s / -w --address 192.168.1.101:60870 --auth basic -R

Stampa il nome utente, la password e l'URL con cui è possibile accedere alla "GUI" e sfogliare i risultati. Al termine, terminare agedu con Ctrl+D sul server.

1
Bastiaan

Per trovare i primi 25 file nella directory corrente e le sue sottodirectory:

find . -type f -exec ls -al {} \; | sort -nr -k5 | head -n 25

Verrà generato i primi 25 file ordinando in base alla dimensione dei file tramite il comando "sort -nr -k5" con pipe.

1
xpros
du -chs /*

Ti mostrerà un elenco della directory principale.

0
RusAlex

Prova il seguente one-liner (visualizza i primi 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 (dato che sort non ha -h), è necessario installare sort da coreutils.

Quindi questi alias sono utili per i 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'
0
kenorb

Per completare l'elenco un po 'di più, aggiungo il mio analizzatore di utilizzo del disco preferito, che è xdiskusage .

La GUI mi ricorda alcune altre buone utilità di X, è veloce e non gonfia, ma puoi comunque navigare facilmente nella gerarchia e avere alcune opzioni di visualizzazione:

$ xdiskusage /usr

enter image description here

0
mpy