ディレクトリ名の文字列の検索と置換

ディレクトリ名の文字列の検索と置換

復元する必要があるファイル構造があり、名前に:2fがあります。

たとえば、ディレクトリ名anyname:2fmorename

すべてのディレクトリとサブディレクトリからに変更できるようにしたいです:2f_

私は次のようなものが欲しい

find . -name *:2f* -type d -execdir mv{} *_* \;

しかし、確信はありません。

答え1

Perlがインストールされている場合は、rename次のことができます。

find . -name '*:2f*' -type d -exec rename 's/:2f/_/g' {} \;

もしあなたならまずテストしてみたい次に、以下を追加しますecho

find . -name '*:2f*' -type d -exec echo rename 's/:2f/_/g' {} \;

答え2

ありがとうございます。結局、次のように動作します。

find /path -depth -type d -name '*:2f*' -execdir bash -c 'mv -v "$1" "${1//:2f/_}"' _ {} \;

関連情報