Nessuna delle soluzioni suggerite ha funzionato per me su una nuova installazione di Debian 14. Dovrebbe funzionare su qualsiasi Posix/MacOS
find ./ -depth -name "*.t1" -exec sh -c 'mv "$1" "${1%.t1}.t2"' _ {} \;
Tutti i crediti a:https://askubuntu.com/questions/35922/how-do-i-change-extension-of-multiple-files-recursively-from-the-command-line
Se la tua versione di bash
supporta il globstar
opzione (versione 4 o successiva):
shopt -s globstar
for f in **/*.t1; do
mv "$f" "${f%.t1}.t2"
done
Usa:
find . -name "*.t1" -exec bash -c 'mv "$1" "${1%.t1}".t2' - '{}' +
Se hai rename
disponibile allora usa uno di questi:
find . -name '*.t1' -exec rename .t1 .t2 {} +
find . -name "*.t1" -exec rename 's/\.t1$/.t2/' '{}' +
Farei così in bash :
for i in $(ls *.t1);
do
mv "$i" "${i%.t1}.t2"
done
EDIT:il mio errore:non è ricorsivo, ecco il mio modo per cambiare in modo ricorsivo il nome del file:
for i in $(find `pwd` -name "*.t1");
do
mv "$i" "${i%.t1}.t2"
done