Если вы хотите преобразовать все файлы в дереве каталогов, я бы запустил:
find . -name '*.rgb' | parallel convert {} {.}.png
Это будет при параллельном запуске:
convert ./foo.rgb ./foo.png
convert ./bar/quux.rgb ./bar/quux.png
Здесь я использую GNU Parallel, чтобы задействовать все ваши CPU. В зависимости от вашей системы вы можете установить его как пакет, в противном случае он находится здесь gnu.org/software/parallel . В Debian это:
apt-get install parallel
Изменить:
Вот решение без GNU Parallel
:
find . -name '*.rgb' -exec sh -c 'convert "$0" "${0%.*}.png"' {} \;
и не очень хорошее решение с использованием while..read
:
find . -name '*.rgb' | while read FILE; do convert "${FILE}" "${FILE%rgb}png" ; done