Fala Gustavo,
e aí?
Cara a coisa é um pouquinho só mais complicada do renomear, pq esses arquivos de imagem têm um cabeçalho cheio (mas cheio meeeesmo) de informações acerca da foto e as informações deles diferem a cada tipo de extensão. Comprove isso executando:
$ identify -verbose /caminho/da/imagem.jpg
e
$ identify -verbose /caminho/da/imagem.png)
E não só esses cabeçalhos são diferentes para cada tipo de arquivo, mas tb seus algorítimos de compactação.
Para fazer essas coisas existe uma suite sensacional para trabalhar com tratamento imagens em modo texto (da qual o identify, que citei, faz parte), chamada Image Magick que é formada, se não me engano, por 13 utilitários, sendo o mais usado o convert, que usaremos para converter esse monte de foto.
Só para vc ver como ela é abrangente, experimente usar o seu utilitário display, fazendo:
$ display /caminho/da/imagem.jpg
e então clique na imagem.
Eu comecei a escrever sobre essa suite, mas comecei a viajar na matemática do código, perdi muito tempo e desisti. Mas escrevi muita coisa sobre o convert e publiquei
aqui. Dá uma olhadinha para vc ver quanta coisa dá para fazer...
Já falei demais. Para fazer o que vc quer, faça:
Primeiramente vc tem de saber quais extensões tem. Para isso faça:
ls | cut -f2- -d. | sort | uniq
Vamos supor que, sem contar com a jpg, tivesse JPG, JPEG, jpeg, Png, PNG e png. Isso valerá para as 2 soluções que darei:
1. Solução meia boca:
for Imagem in *.{JPG,JPEG,jpeg,Png,PNG,png}
do
Nome=${Imagem%.*}
convert $Imagem $Nome.jpg
done
read -p "Posso remover os arquivos antigos? (S/n) " SN
[ $SN = n -o $SN = N ] || rm *.{JPG,JPEG,jpeg,Png,PNG,png}
Ou para fazer cheio de estilo, faça:
2. Solução profissa:
Tot=$(ls *.{JPG,JPEG,jpeg,Png,PNG,png} | wc -l)
Incr=$((100/Tot))
Perc=0
for Imagem in *.{JPG,JPEG,jpeg,Png,PNG,png}
do
Nome=${Imagem%.*}
echo "# Convertendo $Imagem"
convert $Imagem $Nome.jpg
echo $((Perc+=Incr))
done | zenity --progress --auto-close
zenity --question --text "Posso remover os arquivos\n$(ls *.{JPG,JPEG,jpeg,Png,PNG,png})" &&
rm *.{JPG,JPEG,jpeg,Png,PNG,png}
É capaz de ter algum errinho, pq está tarde e não testei. Qq dúvida me ligue, vc ficou com meu tel, não é?