Traté de buscar de forma recursiva un patrón en todos los archivos .c de la siguiente manera
> grep -lr search-pattern *.c
Pero obtuve esto como salida
> grep: *.c: No such file or directory
Cuando uso esto:
> grep -lr search-pattern *
Tengo mucho. c archivos en los directorios con el patrón.
¿Qué hay de malo con la expresión anterior?

--include=GLOBopción. En combinación con la opción recursiva, esto es muy poderoso y no requierefind. ¡Agradable!.sirve el final del comando.El
*.cpatrón es evaluado por su shell. Se aplica al directorio actual, tal como lo usaríals *.c.Creo que lo que quieres es encontrar todos los archivos que coincidan con el
*.cpatrón (recursivamente) ygrepbuscarte en él. Aquí hay una manera de hacer eso:Se utiliza
xargspara agregar los resultados de búsqueda porfind.Alternativamente, use la
-execopción para buscar, por ejemplo:Además, no estoy seguro de si realmente quieres la
-lopcióngrep. Se detendrá en el primer partido:fuente
find/xargssintaxis se rompe en los nombres de archivo que contienen espacios. La-Lopción degrepdetenerse en la primera coincidencia de cada archivo y continuar con el siguiente archivo: si uno solo quiere ver si el patrón está contenido al menos una vez en cada archivo dado, es más rápido.-print0opción yxargs --null.Sé que este es un hilo bastante antiguo, pero como tenía la misma pregunta, quiero compartir mi forma preferida de lograr lo mismo, en una forma mucho más corta.
fuente