O GNU grep
, que é o que você está usando se estiver executando o Linux, fará pesquisas recursivas sozinho, sem a necessidade de find
e xargs
. Ele também tem uma opção --exclude-dir
para "Excluir diretórios correspondentes ao padrão DIR de pesquisas recursivas". Então você poderia escrever sua pesquisa como
grep -R --exclude-dir=/sys --exclude-dir=/proc --exclude-dir=/tmp --exclude-dir=/lib whatever /
Atualizar comentário a seguir:
Se o grep
não der suporte a -R
ou --exclude-dir
, talvez seja necessário recorrer a find
e xargs
, que funcionam bem, mas tem uma sintaxe confusa para esta tarefa. Eu raramente acerto da primeira vez.
find / -path /sys -prune -o \( -path /proc -prune -o \( -path /tmp -prune -o \( -path /lib -prune \) \) \) -o -print0 | xargs -0 grep whatever