Ola @ Yasmin Viana Da Silva Dias, segue algumas ideias. Observe alguns comandos.
Eu tenho mais algumas soluções.
A solução mais simples é como a maioria já postada. Um simples bash for loop.
for i in .png ; do convert "$i" "${i%.}.jpg" ; done
Por alguma razão, tendo a evitar loops no bash, então aqui está uma abordagem xargs mais unixy, usando o bash para a confusão de nomes.
ls -1 .png | xargs -n 1 bash -c 'convert "$0" "${0%.}.jpg"'
A que eu uso. Ele usa o GNU Parallel para executar vários trabalhos ao mesmo tempo, aumentando o desempenho. Ele é instalado por padrão em muitos sistemas e está quase definitivamente em seu repositório (é um bom programa para se ter por perto).
ls -1 *.png | parallel convert '{}' '{.}.jpg'
O número de trabalhos é padronizado para o número de núcleos de CPU que você possui. Encontrei melhor uso da CPU usando 3 tarefas no meu sistema dual-core.
ls -1 *.png | parallel -j 3 convert '{}' '{.}.jpg'
E se você quiser algumas estatísticas (um ETA, trabalhos concluídos, tempo médio por trabalho...)
ls -1 *.png | parallel --eta convert '{}' '{.}.jpg'
Há também uma sintaxe alternativa se você estiver usando o GNU Parallel.
parallel convert '{}' '{.}.jpg' ::: *.png
E uma sintaxe semelhante para algumas outras versões (incluindo debian).
parallel convert '{}' '{.}.jpg' -- *.png