O caminho certo para processar find
output não é for
, mas para lê-lo linha a linha:
find . -type d -iname '*themes*' -print -prune |
while read -r path; do
find "$path" -name '*.ogg'
done
ou
find . -type d -iname '*themes*' -print -prune |
xargs -d '\n' -I {} find {} -name '*.ogg'
ou deixe find
fazer isso:
find . -type d -iname '*themes*' -exec find {} -name '*.ogg' \; -prune
-prune
é uma proteção simples contra casos em que um diretório pai e um subdiretório correspondam à regra -iname
.
Eu pulei o tradicional -print0 | xargs -d '%code%'
, pois nomes de arquivos com caracteres de nova linha são muito improváveis de existir em um sistema de arquivos FAT32.