深さ優先で再帰的にファイルとフォルダの名前を変更する

深さ優先で再帰的にファイルとフォルダの名前を変更する

このサイトの他の回答から繰り返しファイル名を変更するために、次のフラグメントを収集しました。

find . -iname "*oldName*" -exec rename oldName newName '{}' \;

これはファイルだけで作業する場合に便利です。ただし、ディレクトリ構造にoldName変更しようとしているコンテンツも含まれているディレクトリがある場合は、まずディレクトリの名前を変更してから名前を変更するファイルが見つからないため、この操作は失敗します。

コマンドを2回実行するとこの問題を解決できますが、これは理想的ではありません。

深さ優先の方法でこれを実行してこの問題を完全に回避するようにコマンドを変更する方法はありますか?

ベストアンサー1

find-depth必要な作業を正確に行うオプションがあります。

find . -depth -iname "*oldName*" -exec rename oldName newName '{}' \;

おすすめ記事