Find: alla ricerca dei file più grandi!
Gennaio 25, 2014In 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.
Per eventuali domande e integrazioni inviate un e-mail a webmaster@megalinux.cloud. Se l’articolo vi è piaciuto è volete sostenere il sito Megalinux inviate Bitcoin all’indirizzo:
3LpoukFpvDHTZPn5qGbLwUzve3rX9zsSq6
