Debian 14 の新規インストールでは、提案された解決策はどれも機能しませんでした。これは、どの Posix/MacOS でも機能するはずです。
find ./ -depth -name "*.t1" -exec sh -c 'mv "$1" "${1%.t1}.t2"' _ {} \;
すべてのクレジット:https://askubuntu.com/questions/35922/how-do-i-change-extension-of-multiple-files-recurively-from-the-command-line
bash
のバージョンの場合 globstar
をサポート オプション (バージョン 4 以降):
shopt -s globstar
for f in **/*.t1; do
mv "$f" "${f%.t1}.t2"
done
用途:
find . -name "*.t1" -exec bash -c 'mv "$1" "${1%.t1}".t2' - '{}' +
rename
ある場合 利用可能な場合は1つを使用してください これらのうち:
find . -name '*.t1' -exec rename .t1 .t2 {} +
find . -name "*.t1" -exec rename 's/\.t1$/.t2/' '{}' +
私は bash でこのようにします:
for i in $(ls *.t1);
do
mv "$i" "${i%.t1}.t2"
done
編集:私の間違い:再帰的ではありません。ファイル名を再帰的に変更する方法は次のとおりです:
for i in $(find `pwd` -name "*.t1");
do
mv "$i" "${i%.t1}.t2"
done