Leo muchas preguntas y respuestas como esta y esta
Sé que el shell expande los comodines antes de ejecutar un comando y son una característica del shell. También los comodines funcionan con esos comandos que pueden aceptar muchos argumentos. En find . -name *.rb
si tenemos más de un archivo en el directorio actual find
nos dará un error porque hallazgo no puede aceptar varios argumentos y las maneras de resolver este son:
find . -name "*.rb"
find . -name '*.rb'
find . -name \*.rb
Escapamos del asterisco y evitamos la expansión del shell, pero los comodines son una característica del shell; cuando escapamos del asterisco, no conoce su significado, y debería encontrar un archivo llamado *.rb
, entonces, ¿cómo se expande el asterisco en este caso?
*
se cita, entonces el shell no lo expandirá, y el argumento que incluye el glob se pasa al comando que puede entender el glob - es lo mismo para cualquier comando que acepte expresiones regulares que siempre se debe citar ...find
[archive filename single argument] [list of files to extract]
"), por ejemplo.