May 13, 2010

Cercare un file/directory attraversando le sottodirectory

Bash 4 ha una nuova opzione globstar che permette, mediante l'utilizzo di **, di attraversare tutte le sottodirectory e di cercare un determinato pattern.

Ad esempio:

shopt -s globstar
rm -f **/cscope.out

permette di cancellare il file cscope.out presente in tutte le sottodirectory a partire da dove ci si trova. È l'equivalente di usare find . -name cscope.out -delete

La stessa cosa è presente in zsh dalla versione 3.1.7 (del 2000).

ATTENZIONE
L'implementazione di bash attraversa i link simbolici di default, mentre in zsh bisogna usare ***.