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.