Immagina un albero di origine. Ci sono file xml ovunque.
Ma poiché c'è un XYZ.xml alla radice di questo albero, non troverà i miei file xml.
find -iname *.xml
resi
./XYZ.xml
invece di
./XYZ.xml
./a/b/c/bob.xml
./b/d/top.xml
Risposta accettata:
find -iname '*.xml'
Altrimenti, la tua shell espande *.xml
a XYZ.xml
e il comando che viene effettivamente eseguito è
find -iname XYZ.xml
Il motivo per cui funziona se non ci sono file XML nella directory corrente è che le shell generalmente lasciano i caratteri jolly non espansi se non corrispondono a nulla. In generale, ogni volta che vuoi che i caratteri jolly vengano espansi da un programma diverso dalla shell (ad esempio da find
, tar
, scp
, ecc.) è necessario citarli in modo che la shell non tenti di espanderli da sola.