Isso vale a pena repetir. Se você quiser agir em um conjunto de arquivos…
Você nunca precisa canalizar a saída de find
para outra coisa.
Piping a saída de um comando que lhe dá uma lista de arquivos muitas vezes é feito errado. Você não precisa de um for
para isso, e você não deve precisar de find … | xargs
.
Para atuar em um conjunto de arquivos encontrados por find
, use a opção -exec
.
find /some/path -iname '*.plist' -exec plutil -convert xml1 '{}' \;
Aqui, o '{}'
é substituído pelo nome de cada arquivo encontrado.
Se você quiser que uma maneira robusta de canalizar find
output atue nos arquivos encontrados em um loop, considere isto:
find … -print0 | while IFS= read -r -d '' file
do
plutil -convert xml1 "$file"
done