martedì 23 novembre 2010

Cercare file e cartelle con find!

L'alternativa a locate (altro comando per la ricerca dei file) è il comando find. La ricerca avviene passando al comando il path della cartella in cui cercare e il nome del file o una sua descrizione (mediante espressione regolare, in tal caso va passato al comando l'argomento -regex).
Se non passiamo nessun path al comando la ricerca viene condotta all'interno della directory di lavoro e nelle sue sotto directory. Possiamo dire a find di attraversare al massimo n sotto directory se passiamo al comando l'opzione -maxdepht n (con n numero intero). Come dicevo poco fa la ricerca dei file continua in tutte le sotto directory, il comando di default non segue i link simboli a cartelle che man mano trova nel path assegnato per la ricerca (opzione -P, passata di default). L'opzione -L permette di fare il contrario. Che tipo di file stiamo cercando?
Se abbiamo le idee chiare possiamo dare al comando ulteriori informazioni sul tipo di file che stiamo cercando attraverso l'opzione -type char, dove char può essere: b (block) per un file di blocco, d (directory) per una cartella, f (file) per un file regolare ed l (link) per un collegamento. Per una lista completa delle opzioni del comando find consultare la pagina del manuale in linea (comando man find).
Possiamo anche indicare le dimensioni dei file da considerare, con l'opzione -size +n per dire al comando di considerare i file più grandi di n byte, -size -n per quelli più piccoli di n byte. Oppure -size -n se il file che stiamo cercando è esattamente n byte (che memoria, se ricordate la dimensione esatta del file!). Nello specifico, n rappresenta un numero ed è seguito da un prefisso: k per i kilobyte, M per i megabyte e G per i gigabyte. Ad esempio, l'opzione -size +5M sta a indicare tutti i file che, oltre a rispettare i vincoli sul nome, sono più grandi di 5 MB.
Il pattern per il nome da usare per la ricerca va passato con l'opzione -name (possiamo usare il carattere jolly, *). I file di un solo utente vanno invece cercati con l'opzione -user nome_utente. Con -ctime n facciamo capire al comando che siamo interessati a file creati o modificati negli ultimi n giorni! La lista delle opzioni che è possibile passare a find è davvero lunga, mi fermo qui.

Nessun commento:

Posta un commento