GNU/Linux >> Linux Esercitazione >  >> Linux

Come trovare file di grandi dimensioni Linux con i comandi find e du

I comandi Linux find e du verrà in tuo soccorso.

Utilizzo del comando du

Il du Il comando viene utilizzato per stimare l'utilizzo dello spazio file sul sistema Linux. Mostra le informazioni sull'utilizzo del disco.

Usiamo du per controllare il contenuto di /boot :

# du
0   ./efi/EFI/centos
0   ./efi/EFI
0   ./efi
2400    ./grub2/i386-pc
3176    ./grub2/locale
2504    ./grub2/fonts
8096    ./grub2
4   ./grub
250556  .

I valori all'estrema sinistra sono l'utilizzo del disco, seguito dalla directory specifica responsabile di tale utilizzo. La riga inferiore è un riepilogo dell'intero /boot/ directory.

Ecco un elenco di du importanti opzioni

  • -h , --human-readable stampa gli output delle dimensioni in un formato leggibile dall'uomo.
  • -s , --summarize può essere combinato con -h ottenere un riepilogo dell'utilizzo della directory in un formato leggibile dall'uomo.
  • -a , --all elenca le dimensioni di tutti i file e le directory nel percorso file specificato. Puoi combinare con -h

Ora nel nostro caso, vorremmo archiviare l'utilizzo dello spazio e controllare prima il più grande, possiamo ordinarli usando sort comando. Se vogliamo limitare il nostro risultato, il head il comando tornerà utile,

Ottenere i file più grandi con du :

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

Il comando precedente usa du per ottenere l'utilizzo del disco, quindi il contenuto viene reindirizzato per l'ordinamento, quindi head produrrà solo i primi 20 elementi.

Uscita:

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

du: cannot access ‘/proc/20633/task/20633/fd/3’: No such file or directory
du: cannot access ‘/proc/20633/task/20633/fdinfo/3’: No such file or directory
du: cannot access ‘/proc/20633/fd/4’: No such file or directory
du: cannot access ‘/proc/20633/fdinfo/4’: No such file or directory
43855216    /
38679004    /var
38558036    /var/log
38486524    /var/log/asterisk
18136900    /var/log/asterisk/full.prod-asterisk
15786756    /var/log/asterisk/debug.prod-asterisk
2408012 /var/log/asterisk/cdr-custom
2105416 /usr
2101960 /var/log/asterisk/cdr-csv/Master.csv
2101960 /var/log/asterisk/cdr-csv
2074504 /var/log/asterisk/cdr-custom/Master.csv
1014364 /opt
1002432 /usr/lib
635300  /home/centos
635300  /home
634528  /home/centos/debug.prod-asterisk
490704  /tmp
480260  /tmp/pip.log
403512  /opt/instana/agent
403512  /opt/instana

Spesso si ottengono alcuni errori prima di ottenere l'elenco di file di grandi dimensioni. Questo spesso deriva da file a cui non è consentito accedere o da qualsiasi output stderr. Usa 2>/dev/null per ignorare quelli come in questo comando:

du -a / 2>/dev/null | sort -n -r | head -n 20

Utilizzo del comando trova

Puoi usare il find comando per indirizzare solo i file in una ricerca e trovare la dimensione di ciascuno, quindi utilizzare una combinazione di ordinamento e testa per filtrare il contenuto.

Esempio:

find / -type f -printf '%s %p\n' | sort -nr | head -10

Il comando precedente cerca tutti i file nel sistema, quindi stampa la dimensione e il percorso utilizzando %s and %p direttive. Il risultato viene quindi reindirizzato per ordinare e filtrare dal più grande al più piccolo, quindi la testa si limiterà a 10 risultati. Il -n è per l'ordinamento numerico e il -r passato per ordinare annullerà il risultato dei confronti.

Uscita:

# find / -type f -printf '%s %p\n' | sort -nr | head -10
140737486266368 /proc/kcore
18595594900 /var/log/asterisk/full.prod-asterisk
16179399327 /var/log/asterisk/debug.prod-asterisk
2146986543 /var/log/asterisk/cdr-csv/Master.csv
2114553859 /var/log/asterisk/cdr-custom/Master.csv
649754355 /home/centos/debug.prod-asterisk
484122304 /tmp/pip.log
309011589 /var/log/asterisk/cdr-custom/Simple.csv
141488931 /usr/lib/jvm/java-11-openjdk-11.0.7.10-4.el7_8.x86_64/lib/modules
106075056 /usr/lib/locale/locale-archive

Conclusione

Dalla spiegazione sopra, hai imparato come ottenere i file e le directory più grandi e più grandi in Linux. Abbiamo anche imparato a usare il sort comando per ordinare l'output restituito e il head comando per limitare il risultato solo al numero che abbiamo specificato.

Per controllare di più sui comandi che abbiamo utilizzato, non esitare a utilizzare le pagine man. Usa questi comandi:

man du  
man find  
man sort  
man head  
man tail

Linux
  1. Trova file e directory su Linux con il comando find

  2. Come trovare e ordinare i file in base alla data e all'ora di modifica in Linux

  3. Come trovare file con autorizzazioni SUID e SGID in Linux

  4. Trova un file con i comandi Trova e individua in Linux

  5. Come trovare ed eliminare directory e file vuoti in Linux

Come utilizzare Trova e individuare i comandi in Linux:una guida per principianti

Trova file di grandi dimensioni in Linux

Come utilizzare sed per trovare e sostituire la stringa nei file

Come trovare ed eliminare file duplicati in Linux

Come trovare file con il comando fd in Linux

Come trovare file duplicati in Linux e rimuoverli