Se você fizer isso:
grep -r "printf" *.c
o shell expandirá *.c
para todos os arquivos / diretórios terminados em .c
em seu diretório atual, se não existir tal arquivo / diretório, o padrão será tratado literalmente (presumivelmente você não tem nullglob
set ).
Como você pode ver, seu padrão atual nunca está abaixo do diretório atual, pois você não tem nenhum arquivo .c
no diretório atual ou, se houver algum, eles não têm printf
, levando à saída vazia.
Você precisa usar --include
para pesquisar somente em arquivos seletivos e também -r
para percorrer recursivamente:
grep -r --include="*.c" "printf" .
O texto acima irá procurar em todos os arquivos .c
pela string (padrão) printf
, iniciando recursivamente a partir do diretório atual.
se você quiser seguir todos os links simbólicos:
grep -R --include="*.c" "printf" .