Cómo ejecutar find -exec?

Me gustaría encontrar los files en el directory actual que contienen el text "chrome".

$ find . -exec grep chrome find: missing argument to `-exec' 

¿Qué estoy haciendo mal?

Solutions Collecting From Web of "Cómo ejecutar find -exec?"

Te perdiste un ; o a + y a {} :

 find . -exec grep chrome {} \; 

o

 find . -exec grep chrome {} + 

find ejecutará grep y sustituirá {} con el nombre de file encontrado. La diferencia entre ; y + es eso con ; se ejecuta un único command grep para cada file, mientras que con + tantos files como sea posible se dan como parameters para grep a la vez.

No necesita usar find para esto en absoluto; grep puede manejar la apertura de files desde una list global de todo en el directory actual:

 grep chrome * 

… o incluso recursivamente para la carpeta y todo lo que hay debajo:

 grep chrome . -R 
 find . | xargs grep 'chrome' 

también puedes hacer:

 find . | xargs grep 'chrome' -ls 

El primero te muestra las líneas en los files, el segundo solo enumera los files.

La opción de Caleb es más orderada, con less teclas.

Encontrar es de una manera y puedes probar the_silver_searcher entonces todo lo que tienes que hacer es

 ag chrome 

Buscará Chrome en todos los files (incluidos los subdirectorys) y es más rápido que encontrar

Para ver la list de files en lugar de líneas:

 grep -l "chrome" * 

o:

 grep -r -l "chrome" . 

Aquí hay un ejemplo de cómo suelo usar find / exec …

 find . -name "*.py" -print -exec fgrep hello {} \; 

Esto busca recursivamente para todos los files .py, y para cada file imprime el nombre del file y fgrep para 'hola' en ese (para cada) file. La salida se parece (acaba de ejecutar uno hoy):

 ./r1.py ./cgi-bin/tst1.py print "hello" ./app/__init__.py ./app/views.py ./app/flask1.py ./run.py ./tst2.py print "hello again"