Embora você possa canalizar comandos como esse para um shell, ele pode tornar um tanto muito problemático, já que quaisquer globs e variáveis e outros serão expandidos.
Nomes de arquivos contendo, por exemplo asteriscos ( *
, glob) ou cifrões ( $
, variável e expansão de comando) causarão problemas. Você precisa se certificar de citar tudo corretamente e, no caso geral, seus nomes de arquivo podem conter citações, por isso não é tão fácil.
Mas, no caso de find
, ele pode executar comandos externos:
find ./ -type f -exec wc -l {} \;
o {}
é substituído pelo nome do arquivo atual e o ponto e vírgula (cotado) no final é obrigatório.
Pelo menos algumas versões do find
suportam um formato alternativo que fornece vários nomes de arquivos para comandar de uma só vez, salvando um monte de execuções:
find ./ -type f -exec wc -l {} \+