Cerca nel sito:
ricerca
avanzata

Frasi Celebri...

Anche la bestia pi? feroce conosce un minimo di piet?. Ma io non ne conosco, perci? non sono una bestia.

William Shakespeare 

Sondaggio:

In quale citt? vi piacerebbe vivere?

New York
Londra
Roma
Madrid
Parigi
Milano
Tokyo
Berlino
Altro

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-2019 Cataldo Sasso