A sintaxe padrão e canônica e confiável é:
find . -type f -name '*.pdf' -exec sh -c '
for f do
something with "$f"
done' sh {} +
(note que ele pode executar vários sh
invocação se a lista de arquivos é muito grande).
Com zsh
, o equivalente seria
for f (./**/*(.NDoN)) {
something with "$f"
}
( .
para -type f
, D
para incluir arquivos ocultos, oN
para não incomodar a classificação da lista, N
para não reclamar se não houver nenhum arquivo correspondente), exceto que você não obteria mensagens de erro para os diretórios aos quais você não tem acesso.