Você está procurando um nome de arquivo ou uma palavra dentro de um arquivo? O grep pesquisa dentro dos arquivos, o que parece ser o que você deseja.
O grep usa expressões regulares - na verdade, é isso que a parte "re" representa. Portanto, ele não usa os curingas normais do bash; isto é, abc*
não encontraria palavras que começassem com abc, encontraria palavras que começassem com ab, depois zero ou mais c's a seguir. Mas sim, se você simplesmente der um padrão, ele o encontrará em qualquer lugar, sem o conhecimento de palavras inteiras. Se você quisesse encontrar palavras inteiras, seria necessário criar uma expressão regular para dizer isso.
Mas, como a maioria dos comandos, você precisa colocar o (s) nome (s) do (s) nome (s) no final do comando, para que seu exemplo fique lá e aguarde o nome do arquivo.
Como o @plink disse, use
grep -r -o -i "your_string" *
(ou *.*
outro tipo de arquivo). Os erros podem ser ignorados. Se você estiver recebendo muitos erros, poderá anexar 2>/dev/null
ao final, que redirecionará o stderr para um dispositivo nulo.
grep -r -o -i "your_string" *
(com "aspas)."