Imaginez un arbre source. Il y a des fichiers xml partout.
Mais comme il y a un XYZ.xml à la racine de cet arbre, il ne trouvera pas mes fichiers xml.
find -iname *.xml
 renvoie
./XYZ.xml
 au lieu de
./XYZ.xml
./a/b/c/bob.xml
./b/d/top.xml
 Réponse acceptée :
find -iname '*.xml'
 
 Sinon, votre shell développe *.xml vers XYZ.xml , et la commande qui est réellement exécutée est
find -iname XYZ.xml
 
 La raison pour laquelle cela fonctionne s'il n'y a pas de fichiers XML dans le répertoire courant est que les shells laissent généralement les caractères génériques non développés s'ils ne correspondent à rien. En général, chaque fois que vous souhaitez que les caractères génériques soient développés par un programme autre que le shell (par exemple, par find , tar , scp , etc.) vous devez les mettre entre guillemets afin que le shell n'essaie pas de les développer lui-même.