h1

Shell :> Il comando find.

1 Settembre, 2007

ShellOggi volevo parlare di quello che, almeno a mio avviso, è uno dei comandi più potente e molto spesso meno utilizzato dell’ambiente *NIX. Il comando in questione è il comando FIND.
Il compito di questo comando? Permette di effettuare ricerche su tutto il filesystem, siano queste legate a files oppure a directories, anche se dire soltanto questo mi sembra forse un po riduttivo e nemmeno tanto giusto. Il comando find permette, tramite tutte le opzioni e i controlli che gli si possono passare, di effettuare delle ricerche molto approfondite e specifiche che lo rendono utilizzabile anche per altri scopi e compiti. Un esempio dell’utilizzo di questo strumento applicato ad esempio alla “sicurezza” è quello di ricercare nel proprio spazio utente (nella nostra home per intenderci) tutte le cartelle e i files che possono essere modificati anche da altri utenti. Ma questa è soltanto uno dei possbili utilizzi di find.

Per quanto riguarda la sintassi del comando questa è molto semplice:
find [operatori] [path] [espessione]
In pratica il comando effettua una ricerca nel percorso scelto (path) valutando poi l’espressione passata (da sinistra a destra) in accordo con i parametri (operatori) passati.
Per quanto riguarda i parametri si deve fare una precisazione, ci sono tre parametri legati alla ricerca e sono -H, -L e -P che si occupano solo del trattamento dei files di tipo link, poi ci sono tutta una serie di parametri e opzioni legati invece alle “espressioni” che si applicano come filtri per la ricerca, elencarli tutti non mi sembra sensato basta dare uno sguardo al man del comando per averne una conoscenza più completa e approfondita.
E possibile associare anche alcune azioni alle ricerche, ad esempio cercare determinati files con ben specifiche caratteristiche e poi eseguire su di essi uno specifico comando oppure specifiche azioni. Insomma le capacità di find sono davvero tante!
Ecco di seguito alcuni esempi pratici di utilizzo del comando.
Supponiamo ad esempio di voler cercare all’interno di tutto il filsystem tutti i files di nome “foto.jpg”, la sintassi è la seguente:
find / -name foto.jpg
Se invece si vuole effettuare una ricerca di tutti i files che hanno estensione .jpg nella nostra home ad esempio la sintassi è la seguente:
find . -name '*.jpg
Un ultimo esempio è quello di associare alla ricerca anche un’azione, ad esempio ricercare tutte le dir di nome pidgin all’interno del filesystem e di mostrarne il contenuto con un “ls -l”, in questo caso la sintassi sarà la seguente:
find / -type d -name pidgin | xargs /bin/ls -l
Questi esempi comunque vogliono essere solo una traccia per l’utilizzo del comando, giusto per rendersi conto delle possibilità offerte da find, per avere una conoscenza migliore del comando consiglio di leggere per prima cosa il man e poi di utilizzarlo spesso, soltanto così si può imparare a conoscerlo meglio e a sfruttare al massimo le sue capacità.
Ci sentiamo presto con un nuovo comando!

Lascia un Commento