Cerca nel sito:
ricerca
avanzata

Frasi Celebri...

Un funerale per gli uomini è forse una festa di nozze per gli angeli.

Kahlil Gibran 

Sondaggio:

Windows XP è...

Un grande affare
Il Sistema Operativo migliore sul mercato
Bello, ma niente di eccezionale
L'ennesima fregatura Microsoft
Una ciofeca peggiore dei suoi predecessori
Preferisco non commentare...

visualizza risultati


 

find, per cercare i file: generalità ed espressioni

Tra i vari comandi visti finora, ce ne sono alcuni che permettono all'utente di scendere ricorsivamente nell'albero delle directory per fare qualche azione: gli esempi canonici sono ls -R e rm -R. Bene, find è il comando ricorsivo. Ogni volta che pensate "Beh, devo fare questo e quest'altro su tutti questi tipi di file nella mia partizione", dovreste pensare di usare find. In un certo senso il fatto che find trovi file è un effetto secondario: il suo vero compito è valutare. La struttura di base del comando è la seguente:

find percorso [...] espressione [...]

Questo almeno vale per la versione GNU; altre versioni non permettono di specificare più di un percorso, ed inoltre è molto raro che serva una cosa del genere. La spiegazione della sintassi del comando è piuttosto semplice: dite da dove volete che cominci la ricerca (la parte percorso; con GNU si può omettere e per default verrà presa in considerazione la directory corrente "."), e che tipo di ricerca volete fare (la parte espressione).

Il comportamento standard del comando è piuttosto complicato, quindi vale la pena notarlo. Supponiamo che nella vostra home directory ci sia una directory butta, che contiene il file pippo. Digitate find . -name pippo (che come potete indovinare ricerca un file di nome pippo), e ottenete ...niente altro che il prompt. Il problema sta nel fatto che find è per default silenzioso: rende 0 se la ricerca è stata completata (trovando qualcosa o meno) o un valore non-zero se ci sono stati dei problemi. Questo non accade con la versione che trovate su Linux, ma è comunque utile da ricordare.

La parte delle espressioni può essere divisa in quattro gruppi di parole chiave diversi: opzioni, test, azioni ed operatori; ognuno di questi può restituire un valore vero o falso, insieme ad un effetto secondario. Le differenze tra i gruppi vengono mostrate più avanti.

opzioni

influiscono sulle operazioni generali di find, piuttosto che sul processo di un singolo file. Un esempio è -follow, che dice a find di seguire i link simbolici invece di dire semplicemente l'inode. Restituisce sempre il valore vero.

test

sono veri e propri controlli (ad esempio, -empty controlla se il file è vuoto), e possono restituire i valori vero o falso.

azioni

hanno anche un effetto secondario, il nome del file considerato. Possono restituire vero o falso anch'esse.

operatori

non restituiscono un valore (possono essere considerati veri per convenzione), e vengono usati per costruire espressioni compresse. Un esempio è -or, che prende l'Or logico delle due sottoespressioni ai suoi lati. Notate che quando si mettono due espressioni una dopo l'altra, è sottinteso -and.

Notate che find si basa sulla shell per leggere la linea di comando, ciò significa che le parole chiave devono essere messe tra spazi, e soprattutto che molti caratteri devono essere trattati in modo da non essere corrotti dalla shell. Si può fare sia con la barra rovesciata che con le virgolette, singole e doppie; negli esempi le parole chiave a carattere singolo verranno quotate con la barra rovesciata, perché (almeno secondo me, ma sono io che scrivo queste note!) è il modo più semplice.

 

successivo
–«  INDICE  »–

 

 

 

 
Powered by paper&pencil (carta&matita ) - Copyright © 2001-2009 Cataldo Sasso