わかった
find . -name "*.andnav" -exec rename -v 's/\.andnav$/\.tile/i' {} \;
./0/0.png.andnav renamed as ./0/0.png.tile
./0/1.png.andnav renamed as ./0/1.png.tile
./1/0.png.andnav renamed as ./1/0.png.tile
./1/1.png.andnav renamed as ./1/1.png.tile
もちろん、実際に実行するときは -v を削除してください。そうしないと、すべてのファイルを表示するのに時間がかかります
zsh の場合:
autoload zmv
zmv -n '(**/)(*).andnav' '$1$2.tile'
-n
を削除します 実際に名前変更を実行します。
次のようなもの:
find . -name '*.andnav' -exec sh -c 'mv "$0" "${0%.andnav}.tile"' {} \;
説明
上記は、現在の作業ディレクトリ (.
) から始まるディレクトリ ツリーのウォークを開始します。 )。ファイル名がパターン *.andnav
に一致するたびに (例:foo.andnav
) 次のコマンドが実行されます:
sh -c 'mv "$0" "${0%.andnav}.tile"' foo.andnav
どこ $0
foo.andnav
です と ${0%.andnav}.tile
.andnav
を置き換えます .tile
のサフィックス 基本的に:
mv foo.andnav foo.tile