Esse script bash
deve fazer: o caminho para manipular deve ser passado para ele como um argumento (isso é intencional), por exemplo:
./script.sh <directory>
#!/bin/bash
while read filepath
do
newpath="$(<<< "$filepath" sed 's/^\(.*\)\/\(.*\)\/[^ ]*\(.*\)$/\/\/Folder - Page 0/')"
mv "$filepath" "$newpath"
done <<< "'find -type f \( -iname '*.png' -o -iname '*.jpeg' -o -iname '*.jpg' \)'"
Antes:
<directory> ├── f1 │ ├── Image 01.png │ ├── Image 02.png │ └── Image 03.jpeg ├── f2 │ └── f2.1 │ ├── Image 04.jpeg │ ├── Image 05.jpg │ └── Image 06.jpg └── f3 └── f3.1 └── f3.1.1 ├── Image 07.png ├── Image 08.png └── Image 09.jpeg
Depois:
<directory> ├── f1 │ ├── Folder f1 - Page 001.png │ ├── Folder f1 - Page 002.png │ └── Folder f1 - Page 003.jpeg ├── f2 │ └── f2.1 │ ├── Folder f2.1 - Page 004.jpeg │ ├── Folder f2.1 - Page 005.jpg │ └── Folder f2.1 - Page 006.jpg └── f3 └── f3.1 └── f3.1.1 ├── Folder f3.1.1 - Page 007.png ├── Folder f3.1.1 - Page 008.png └── Folder f3.1.1 - Page 009.jpeg