Seu comando
find ../ -type f -exec grep "nslookup" {} \;
está quase correto, além do fato de que grep
por padrão não exibe o nome do arquivo quando é dado apenas um único arquivo para trabalhar.
Aqui estão duas maneiras de corrigir isso:
-
Usando um
grep
que tem a opção não padrão (mas comum)-H
para sempre exibir o nome do arquivo:find ../ -type f -exec grep -H 'nslookup' {} \;
-
Atribuindo
grep
pelo menos dois nomes de arquivo:find ../ -type f -exec grep 'nslookup' /dev/null {} \;
Se você está interessado em somente os nomes dos arquivos, estas são duas maneiras de fazer isso:
-
Use a opção padrão
-l
comgrep
:find ../ -type f -exec grep -l 'nslookup' {} \;
-
Deixar
find
gerar o nome do caminho do arquivo, se ele contiver uma correspondência:find ../ -type f -exec grep -q 'nslookup' {} \; -print
Aqui, usamos somente
grep
para detectar se o padrão corresponde. Sua opção-q
impede que ela imprima nada efind
usará o status de saída do utilitário para determinar se a ação-print
deve ou não ser executada.