Nel tempo, l'unità disco potrebbe essere ingombra di molti file non necessari che occupano grandi quantità di spazio su disco. Di solito, i sistemi Linux esauriscono lo spazio su disco a causa di file di registro o di backup di grandi dimensioni.
Questo tutorial spiega come trovare i file e le directory più grandi nei sistemi Linux usando find
e du
comandi.
Trova file di grandi dimensioni usando find
Comando #
Il find
command è uno degli strumenti più potenti nell'arsenale degli amministratori di sistema Linux. Ti consente di cercare file e directory in base a diversi criteri, inclusa la dimensione del file.
Ad esempio, per cercare file con dimensioni maggiori di 100 MB, nella directory di lavoro corrente, eseguire il comando seguente:
sudo find . -xdev -type f -size +100M
Sostituisci .
con il percorso della directory in cui si desidera cercare i file più grandi. L'output mostrerà un elenco di file senza alcuna informazione aggiuntiva.
/var/lib/libvirt/images/centos-7-desktop_default.img
/var/lib/libvirt/images/bionic64_default.img
/var/lib/libvirt/images/win10.qcow2
/var/lib/libvirt/images/debian-9_default.img
/var/lib/libvirt/images/ubuntu-18-04-desktop_default.img
/var/lib/libvirt/images/centos-7_default.img
Il find
comando può anche essere usato in combinazione con altri strumenti come ls
o sort
per eseguire operazioni su quei file.
Nell'esempio seguente, stiamo passando l'output di find
comando a ls
che stamperà la dimensione di ogni file trovato e quindi reindirizza l'output a sort
comando per ordinarlo in base alla quinta colonna che è la dimensione del file.
find . -xdev -type f -size +100M -print | xargs ls -lh | sort -k5,5 -h -r
L'output sarà simile a questo:
-rw------- 1 root root 40967M Jan 5 14:12 /var/lib/libvirt/images/win10.qcow2
-rw------- 1 root root 3725M Jan 7 22:12 /var/lib/libvirt/images/debian-9_default.img
-rw------- 1 root root 1524M Dec 30 07:46 /var/lib/libvirt/images/centos-7-desktop_default.img
-rw------- 1 root root 999M Jan 5 14:43 /var/lib/libvirt/images/ubuntu-18-04-desktop_default.img
-rw------- 1 root root 562M Dec 31 07:38 /var/lib/libvirt/images/centos-7_default.img
-rw------- 1 root root 378M Jan 7 22:26 /var/lib/libvirt/images/bionic64_default.img
Se l'output contiene molte righe di informazioni puoi usare il head
comando per stampare solo le prime 10 righe:
find . -xdev -type f -size +100M -print | xargs ls -lh | sort -k5,5 -h -r | head
Analizziamo il comando:
find . -xdev -type f -size +100M -print
- cerca solo i file (-type f
) nella directory di lavoro corrente (.
), maggiore di 100 MB (-size +100M
), non discendere le directory su altri filesystem (-xdev
) e stampa il nome completo del file sullo standard output, seguito da una nuova riga (-print
).xargs ls -lh
- l'output delfind
il comando viene inviato tramite pipe axargs
che eseguels -lh
comando che stamperà l'output in un formato leggibile a lungo elenco.sort -k5,5 -h -r
- ordina le righe in base alla quinta colonna (-k5,5
), confronta i valori in formato leggibile (-h
) e invertire il risultato (-r
).head
:stampa solo le prime 10 righe dell'output in pipe.
Il find
comando viene fornito con molte potenti opzioni. Ad esempio, puoi cercare file di grandi dimensioni che sono più vecchi di x giorni, file di grandi dimensioni con un'estensione specifica o file di grandi dimensioni che appartengono a un determinato utente.
Trova file e directory di grandi dimensioni usando il du
Comando #
Il du
Il comando viene utilizzato per stimare l'utilizzo dello spazio dei file ed è particolarmente utile per trovare directory e file che consumano grandi quantità di spazio su disco.
Il comando seguente stamperà i file e le directory più grandi:
du -ahx . | sort -rh | head -5
La prima colonna include la dimensione del file e la seconda il nome del file:
55G .
24G ./.vagrant.d/boxes
24G ./.vagrant.d
13G ./Projects
5.2G ./.minikube
Spiegazione del comando:
du -ahx .
:stima l'utilizzo dello spazio su disco nella directory di lavoro corrente (.
), conta sia i file che le directory (a
), stampa i formati in un formato leggibile (h
) e salta le directory su file system diversi (x
).sort -rh
:ordina le righe confrontando i valori in un formato leggibile (-h
) e invertire il risultato (-r
).head -5
:stampa solo le prime cinque righe dell'output in pipe.
Il du
comando ha molte altre opzioni che possono essere utilizzate per perfezionare l'output dell'utilizzo dello spazio su disco.
Conclusione #
Ti abbiamo mostrato come trovare i file e le directory più grandi usando find
e du
comandi.
Ora che impari come trovare i file più grandi sul tuo sistema, potresti voler leggere la nostra guida su Come rimuovere file e directory usando la riga di comando di Linux.
Se hai domande o commenti, lascia un commento qui sotto.