Necesito cambiar el nombre de todos los archivos de imagen en un directorio y nombrarlos como se llame la carpeta en la que se encuentran.

Necesito cambiar el nombre de todos los archivos de imagen en un directorio y nombrarlos como se llame la carpeta en la que se encuentran.

Necesito cambiar el nombre de todos los archivos de imagen en un directorio y nombrarlos como se llame la carpeta en la que se encuentran... ¿Es esto posible usando un script Bash?

También necesito numerarlos (0001.jpg, 0002.jpg, 0003.jpg, ect...) consecutivamente. El problema que tengo es que hay algunos saltos entre los números... (0018.jpg, 0019.jpg, 0025.jpg, 0026.jpg, ect...) Me gustaría cambiar el nombre del 0025.jpg a será 0020.jpg y el 0026.jpg será 0021.jpg, etc.

Respuesta1

Si es posible. Puede usarlo find /search/path -type dpara buscar todos los directorios y usar la opción -exec para ejecutar algunas acciones con la ruta del directorio como parámetro. Y puedes tener un script bash que se ejecute NUM=0; for file in /path/to/folder/*.jpg; do mv file NUM.jpg; let "NUM=NUM+1"; done;o algo como esto

Respuesta2

Para usar este comando tienes que estar en el directorio donde están los archivos .jpg o tienes que personalizar un poco el comando.

 let a=0; for i in *.jpg; do let a=a+1; b=`basename $PWD`; c=`printf %04d$b.jpg $a`; mv $i $c; done

La salida se verá así:

0001<dirname>.jpg

información relacionada