Imagina un árbol de fuentes. Hay archivos xml por todas partes.
Pero como hay un XYZ.xml en la raíz de este árbol, no encontrará mis archivos xml.
find -iname *.xml
regresa
./XYZ.xml
en lugar de
./XYZ.xml
./a/b/c/bob.xml
./b/d/top.xml
Respuesta aceptada:
find -iname '*.xml'
De lo contrario, su shell se expande *.xml
a XYZ.xml
, y el comando que realmente se ejecuta es
find -iname XYZ.xml
La razón por la que funciona si no hay archivos XML en el directorio actual es que los shells generalmente dejan comodines sin expandir si no coinciden con nada. En general, cada vez que desee que un programa que no sea el shell expanda los comodines (por ejemplo, mediante find
, tar
, scp
, etc.) debe citarlos para que el shell no intente expandirlos por sí mismo.