Normalmente, eu uso esse estilo de comando para executar grepvários arquivos:
find / -xdev -type f -print0 | xargs -0 grep -H "800x600"
O que isso realmente faz é fazer uma lista de todos os arquivos no sistema e, em seguida, para cada arquivo, executar grepcom os argumentos fornecidos e o nome de cada arquivo.
O -xdevargumento diz que ele deve ignorar outros sistemas de arquivos - isso é bom para evitar sistemas de arquivos especiais, como /proc. No entanto, ele também ignorará também os sistemas de arquivos normais - portanto, se, por exemplo, sua pasta / home estiver em uma partição diferente, ela não será pesquisada - você precisaria dizer find / /home -xdev ....
-type fsignifica procurar apenas arquivos, para que diretórios, dispositivos e outros arquivos especiais sejam ignorados (ele ainda será executado novamente nos diretórios e será executado grepnos arquivos contidos - apenas não será executado grepno próprio diretório, o que não funcionaria de qualquer maneira). E a -Hopção para grepdiz para sempre imprimir o nome do arquivo em sua saída.
findaceita todos os tipos de opções para filtrar a lista de arquivos. Por exemplo, -name '*.txt'processa apenas arquivos que terminam em .txt. -size -2Msignifica arquivos menores que 2 megabytes. -mtime -5significa arquivos modificados nos últimos cinco dias. Junte-os a -a for e -o for or e use '('parênteses ')'para agrupar expressões (entre aspas para impedir que o shell as interprete). Então, por exemplo:
find / -xdev '(' -type f -a -name '*.txt' -a -size -2M -a -mtime -5 ')' -print0 | xargs -0 grep -H "800x600"
Dê uma olhada man findpara ver a lista completa de possíveis filtros.
Permission deniederros? Você o executou como root ou como usuário normal?