5.9 Ricerca di file o nel contenuto di file

Spesso capita di non sapere se esiste un file all’interno di un filesystem o di non ricordare dove è stato creato. Per ricercare un file all’interno del filesystem può essere utilizzato il comando find (man page find(1)).

____________________________________________________________________

Comando: find
Path: /usr/bin/find

SINTASSI  
$ find [path ...] [expression]  
DESCRIZIONE

____________________________________________________________________

find visita tutto l’albero del filesystem la cui radice è indicata da path, valutando, per ogni file (o directory), l’espressione expression. Il primo parametro che inizia per -, (, ), , o ! è considerato l’inizio di expression.

L’exit status di find è 0 se tutto ok, e maggiore di 0 se si verificano dei problemi.

[da completare ...]

Il comando which (man page which(1)) invece permette di ricercare un file nelle varie directory elencate nella variabile di ambiente PATH.

__________________________________________________________________________________________________________

Comando: which
Path: /usr/bin/which

SINTASSI  
$ which [option] [--] command [...]  
DESCRIZIONE

_____________________________

L’exit status di which è un valore che indica il numero di opzioni non consentite o -1 se non viene specificato nessun comando.

Ad esempio, il comando

 
$ which ls  
visualizzerà il path del comando ls (il primo trovato nelle directory elencate da PATH), cioè /bin/ls.

Poiché il percorso di ricerca di which è lo stesso di quello utilizzato dalla shell nell’interpretazione dei comandi (v. cap. 3), which è un comando che può essere utile quando, in corrispondenza del lancio di un comando, si ha come risposta un messaggio del tipo

 
bash: cmd: command not found  
dove cmd è il comando impartito.

Un altro comando utile di GNU/Linux è grep (man page grep(1)). Si tratta di un comando molto complesso che permette di effettuare ricerche di sequenze di byte all’interno di un file.

_______________________________________________________________

Comando: grep
Path: /bin/grep

SINTASSI  
$ grep [option] pattern [file]  
DESCRIZIONE

È possibile utilizzare opzioni predefinite, assegnandole alla variabile di ambiente GREP_OPTIONS. ____________________________________________________

Ad esempio, il comando

 
$ grep -n --color pippo *  
visualizza le righe di tutti i file (*) presenti nella working directory, contenenti la stringa ‘pippo’, con il riferimento al numero della riga ed al nome del file, ed evidenziando la stringa ricercata. Invece il comando

 
$ grep -Lr pippo *  
visualizza i nomi di tutti i file (*) presenti nella working directory e nelle eventuali sottodirectory, che non contengono la stringa ‘pippo’.