A sintaxe padrão (POSIX) é:
find /path/to/parent -type f -exec grep 'XXX' /dev/null {} +
(o /dev/null
é para garantir que grep
sempre imprima um nome de arquivo). Isso funcionará em todos os sistemas POSIX, incluindo o Solaris. Os únicos sistemas pós-90 conhecidos onde é sabido que não funcionam são sistemas GNU antigos (muito antigos).
O GNU inicialmente introduziu uma predicção -print0
e uma -0
em xargs
em vez disso:
find /path/to/parent -type f -print0 | xargs -0 grep 'XXX' /dev/null
Existem agora algumas outras implementações que suportam isso, mas não o Solaris.
Acima, em teoria, você desejaria adicionar a opção -r
para evitar a execução de grep
se não houvesse arquivo, mas não é tão portátil e, nesse caso específico, não faz uma diferença funcional