Se você sabe com quais extensões de arquivo você está lidando, pode codificá-lo:
for f in *.JPG
do
mv "$f" "${f%.JPG}.jpg"
done
Para o caso mais geral:
for f in *
do
e="${f##*.}"
b="${f%.*}"
mv "$f" "${b}.${e,,}"
done
Onde o trabalho pesado é feito com variável bash expansão para:
- salve a extensão (remova o máximo possível da frente do nome do arquivo até encontrar um ponto)
- salve o resto do nome do arquivo (remova um período para o final do nome do arquivo, minimamente)
- renomeie o arquivo para o novo nome de arquivo, minúscula a extensão (
,,
) no processo