Tengo una carpeta con varios archivos (imágenes) que tienen distintos nombres (algunos son fechas, otros direcciones web, etc). Necesitaba cambiarles el nombre a todos, por algo que no tuviera identidad ni sirviera para relacionar su contenido. Programé esto en bash para lograrlo:

#!/bin/bash
echo 'Cambianombres 1 (jpg/png/gif)'
echo '---.--,-.--.---,--.-.--.---,-'
read 'ctrl+C para salir // enter para continuar' nada
echo ''
echo 'renombrando archivos .jpg'
for ARCHIVOS in *.jpg
 do NUEVO=$(( $RANDOM % 1000000000 ))
 mv "$ARCHIVOS" $NUEVO.jpg
done
echo

echo 'renombrando archivos .png'
for ARCHIVOS in *.png
 do NUEVO=$(( $RANDOM % 1000000000 ))
 mv "$ARCHIVOS" $NUEVO.png
done
echo

echo 'renombrando archivos .gif'
for ARCHIVOS in *.gif
 do NUEVO=$(( $RANDOM % 1000000000 ))
 mv "$ARCHIVOS" $NUEVO.gif
done
echo '-.--..-.-,.,-,-.,-.-.-.,'
echo 'Listoco! este programa está bajo GPLv3 o sgtes.'
echo 'cvillavicencio.com'
end

Considero que poco podría comentar respecto al funcionamiento, si el código está super claro. Como siempre, para usarlo hay que darle los permisos respectivos y  moverlo a /usr/bin para poder usarlo sin poner la ruta completa.

$ su
# chmod 777 cambianombre
# mv cambianombre /usr/bin/cambianombre

Ahora bastará llegar a la carpeta en que estén los archivos desde la terminal y ejecutar cambianombre. Tuve la precaución de incluir el read (línea 4) para que a nadie se le arranque por error el comando… dificil, pero igual.

Existe una pequeña posibilidad (1 en 1000000000, para ser precisos) de que el nombre de un archivo se repita, lo que tal vez provoque algún problema que, imagino, sería la eliminación del primer archivo al que se le cambió el nombre. Supongo que existe una forma de resolverlo, pero siendo tan menor la posibilidad de que ocurra y la poca importancia de los archivos que pretendo renombrar (memes y basuritas), no me preocuparé.