Aucune des solutions suggérées n'a fonctionné pour moi sur une nouvelle installation de Debian 14. Cela devrait fonctionner sur n'importe quel Posix/MacOS
find ./ -depth -name "*.t1" -exec sh -c 'mv "$1" "${1%.t1}.t2"' _ {} \;
Tous les crédits à :https://askubuntu.com/questions/35922/how-do-i-change-extension-of-multiple-files-recursively-from-the-command-line
Si votre version de bash
prend en charge le globstar
option (version 4 ou ultérieure) :
shopt -s globstar
for f in **/*.t1; do
mv "$f" "${f%.t1}.t2"
done
Utiliser :
find . -name "*.t1" -exec bash -c 'mv "$1" "${1%.t1}".t2' - '{}' +
Si vous avez rename
disponible alors utilisez un parmi ceux-ci :
find . -name '*.t1' -exec rename .t1 .t2 {} +
find . -name "*.t1" -exec rename 's/\.t1$/.t2/' '{}' +
Je ferais comme ça en bash :
for i in $(ls *.t1);
do
mv "$i" "${i%.t1}.t2"
done
EDIT :mon erreur :ce n'est pas récursif, voici ma façon de changer récursivement le nom de fichier :
for i in $(find `pwd` -name "*.t1");
do
mv "$i" "${i%.t1}.t2"
done