O seguinte parece funcionar para qualquer coisa que se ajuste ao padrão imageNUMBER.jpg . Eu coloquei echo antes do comando mv para mostrar primeiro o que o comando faria; para realmente executar a renomeação, basta remover o echo
for i in 'ls image*.jpg|sort -V' ; do
x='echo $i|sed -e "s/image\(.*\).jpg//"'
y=$(( $x - 1 ))
echo mv -i $i image$y.jpg
done
Na primeira linha, o ls image*.jpg|sort -V fará com que os arquivos JPG sejam listados com números ascendentes no nome do arquivo. A linha x= extrai o número do nome do arquivo. A linha y= , em seguida, diminui o número em um. O nome do arquivo de entrada e o y number são usados no comando mv , onde o -i flag o notificará antes de sobrescrever um arquivo.
Para meu próprio pequeno teste, isso produziu a saída:
mv -i image1.jpg image0.jpg
mv -i image2.jpg image1.jpg
mv -i image123.jpg image122.jpg
Pessoalmente, sugiro renomear para um nome de arquivo mais diferente, já que agora a ordem em que os arquivos são processados pode fazer uma grande diferença.