Hace unos días me topé con la necesidad de renombrar prolijamente un grupo de archivos en una carpeta, la idea principal era usar un prefijo y luego un número (además de la extensión, claro). Por ejemplo:

  • foto-001.jpg
  • foto-002.jpg
  • etc

La solución más rápida que encontré en bash fue de la siguiente manera:

find -name '*.jpg' | awk 'BEGIN{ a=1 }{ printf "mv %s foto-%04d.jpg\n", $0, a++ }' | bash

Fuente: StackOverflow