Find: alla ricerca dei file più grandi!


In una qualunque giornata iniziata bene, vi siete accorti che lo spazio del vostro hard disk è pieno, e che purtroppo non avete più spazio libero per salvare i dati del gestionale o per registrare i logs di sistema. In questa situazione abbastanza paradossale volete capire quali sono quei files che occupano più spazio, al fine di eliminarli o di spostarli per liberare spazio nel vostro sistema. Per risolverere questo tipo di problema avete a disposizione un comando potentissimo presente in tutte le distribuzioni GNU/Linux, e cioè  l’utility Find.

UN SEMPLICE UTILIZZO DEL COMANDO FIND

Partendo dalle basi, e quindi da un semplice utilizzo del comando find, per trovare un file potete digitare da shell con utente root, o con l’opzione sudo,  il seguente comando:

# find -name termine_di_ricerca

L”opzione -name indica che il nome del file da trovare si chiama “termine_di_ricerca”.

Ad un passo successivo, sempre con l’utente root, o con l’opzione sudo, un interrogazione un pò più complessa potrebbe essere utilizzata per trovare quei files superiori a un certo numero di Megabyte e quindi potreste digitare il seguente comando:

# find / -type f -size +4096k

In particolare, al comando find gli si dice di trovare quei file più grandi di 4 Mb (segno +) ossia 4096k (1024k = 1 Mb) e l’opzione type f specifica di non includere nella ricerca i file dei dispositivi di blocco.

Affinando di più la ricerca, si può scrivere in un file di appoggio l’elenco dei file trovati, come specificato dal comando seguente:

# find / -type f -size +102400k > /home/filemaggiori100Mb

Andando a leggere il file “filemaggiori100Mb” nella directory /home con il comando cat si possono scorrere quei file che soddisfano i requisiti di ricerca elaborati nel comando find ed in seguito deciderne l’eliminazione per liberare spazio su disco.

Continuando a discutere di find, possiamo decidere di eliminare in una determinata cartella quei files con una dimensione superiore ai 4 Mb utilizzando il comando find con l’opzione exec. Facciamo un esempio:

# find /home/cippopippo/  -type f -size +4096k -exec rm  {} \;

Il comando find cerca quei file nella cartella cippopippo superiori di 4 Mb e li cancella (-exec rm). In questo caso tutto diventa automatico, ma bisogna fare attenzione a non eliminare i file importanti.

Aumentando ancora la complessità dell’interrogazione possiamo formulare un comando che trovi quei files appartenenti ad un utente, presenti all’interno della directory cippopippo, superiori a 4096k ed eliminamoli automaticamente (più opzione -user).

# find /home/cippopippo/  -type f -size +4096k -user ruggero | xargs rm

Il comando è uguale al precedente ma ho aggiunto l’opzione -user ruggero che specifica di eliminare quei file superiori a 4096k appartenti all’utente ruggero presenti nella cartella /home/cippopippo. In questo comando ho utilizzato il comando xargs e rm insieme. Xargs è un comando che permette di filtrare e eseguire più comandi contemporaneamente e normalmente legge dallo standard input o da una pipe (come nel nostro caso), ma anche dall’output di un file. Il comando rm è invece un comando che permette di cancellare i files.

CONCLUSIONI

L’articolo è abbastanza interessante, e in futuro parlerò ancora dell’utility find; Per ora, divertitevi con i comandi che avete appena imparato. Se l’articolo vi è piaciuto è volete sostenere il sito Megalinux inviate Bitcoin all’indirizzo:

3EJZiSmqRkoZ48ae2pYbKupMYQqoQvxdxe

Codice QR Bitcoin

No votes yet.
Please wait...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

uno × due =

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.