半角丸カッコを全角丸カッコに置換するワンライナー
i=1; while [ $i -ne 0 ]; do find /hogehoge -type f -regex ".*(.*" -exec rename '(' '(' '{}' \;; i=`find /hogehoge -type f -regex ".*(.*" | wc -l`; done
全然ワンライナーじゃないけど…とりあえずメモ。
findしたファイル名をrenameコマンドに食わせていますが、renameコマンドが
1文字置換したら抜けてしまう仕様のようなので、ループさせて特殊文字が
なくなるまで処理させています。
ディレクトリに特殊文字が含まれていると、エラーになってしまうので先にディレクトリに対して
同様の処理をしておくのをオススメします。
ディレクトリに実行する場合は、-type に d を指定します。
なお、角カッコの場合は
半角角カッコを全角角カッコに置換するワンライナー
i=1; while [ $i -ne 0 ]; do find /hogehoge -type f -regex ".*\[.*" -exec rename '[' '[' '{}' \;; i=`find /hogehoge -type f -regex ".*\[.*" | wc -l`; done
findのregexに指定した角カッコの前にエスケープ文字を入れてあげる必要があります。
いつかまた使うかもしれないので、メモ。