Se você usar (a partir da linha de comando ou dentro de um script ... se precisar do script, é só pedir;)) o comando file thisimage.png
, ele informará qual formato de imagem você realmente tem .... Então você pode renomeie de acordo ...
Este é um exemplo do que recebo com um arquivo com extensão de arquivo incorreta .png que é realmente um arquivo jpg:
user@computer:$ file logo.png
logo.png: JPEG image data, JFIF standard 1.01
Edit: Ah, ok, eu estava com preguiça antes ... Aqui está um script que irá renomear arquivos gif reais que são nomeados com a extensão .png para sua extensão correta .gif:
#!/bin/bash
for NAME in $(ls *.png); do
if [ "$(file $NAME|grep GIF)" ]; then
echo "Renaming ${NAME} to ${NAME%.*}.gif"
mv ${NAME} ${NAME%.*}.gif
fi
done