Se você quiser converter todos os arquivos na árvore dir, eu executaria:
find . -name '*.rgb' | parallel convert {} {.}.png
Isso será executado paralelamente:
convert ./foo.rgb ./foo.png
convert ./bar/quux.rgb ./bar/quux.png
Aqui eu uso o GNU Parallel para fazer uso de todas as suas CPUs. Dependendo do seu sistema, você pode instalá-lo como um pacote, caso contrário, ele está aqui gnu.org/software/parallel . No Debian é:
apt-get install parallel
Editar:
Aqui está uma solução sem GNU Parallel
:
find . -name '*.rgb' -exec sh -c 'convert "$0" "${0%.*}.png"' {} \;
e uma solução nada agradável usando while..read
:
find . -name '*.rgb' | while read FILE; do convert "${FILE}" "${FILE%rgb}png" ; done