Passa uno *
carattere jolly per indicare una corrispondenza per qualsiasi cosa . Devi anche eseguire l'escape di *
s, ad esempio:
find . -path \*content/docs/file.xml
o racchiudere il modello tra virgolette, ad esempio:
find . -path "*content/docs/file.xml"
Come la pagina man lo descrive:
$ trova . -nome *.c -print
find:i percorsi devono precedere l'espressione
Questo accade perché *.c è stato espanso dalla shell risultando infind che riceve effettivamente una riga di comando come questa:
trova . -name bigram.c code.c frcode.c locate.c -print
Quel comando ovviamente non funzionerà. Invece di fare le cose in questo modo, dovresti racchiudere lo schema tra virgolette o evitare il carattere jolly:
$ trova . -name \*.c -print
find ha un -path
(o l'equivalente ma meno portabile -wholename
) anche l'opzione find $top_dir -wholename *string*
find /usr -path *in/abiw*
>/usr/bin/abiword
find . -type f | grep "content/docs/file.xml"
o semplicemente
locate content/docs/file.xml