ディレクトリ名・ファイル名の文字コードを再帰的に変更する

日付 2019.06.12
タイトル ディレクトリ名・ファイル名の文字コードを再帰的に変更する
本文
convmvを使えない場合の変換方法。
xargsを使うとsjisは文字化けしてしまうのでsedで実行コマンドを作成する。

# utf-8 → shift_jis変換 find . | awk '/^.\// { c = split(:txt,, a, "/"); print c "\t" :txt,}' | sort -nr -k1 | awk '{print }' | sed 's|\(.*\)|echo ,"\t"`dirname ,`"/"`basename , \| iconv -f utf8 -t sjis `|' | sh - | awk ', != { print "mv -n " "\"" , "\"" " " "\"" "\"" }' | sh - # shift_jis → utf--8変換
# バックスラッシュと円マークの違いに注意
find . | awk '/^.¥// { c = split(:txt,, a, "/"); print c "¥t" :txt,}' | sort -nr -k1 | awk '{print }' | sed 's|¥(.*¥)|echo ¥1"¥t"`dirname ¥1`"/"`basename ¥1 ¥| iconv -f sjis -t utf-8 `|' | sh - | awk ', != { print "mv -n " "¥"" , "¥"" " " "¥"" "¥"" }' | sh -