ubuntu系だと、
sudo apt-get install convmv
でインストールできる。
さて、ひとつ今日気がついたことがある。
ファイルシステムが違うと動作が違うというか、NTFS(fuse)上では目論見通りに動作しないのだ。ext4上では期待どおり動作している。
コマンドはこれ。前後を入れ替えると逆に変換してくれる。SIJSで名前がついたfile.txt をSJISからUTF-8にするコマンド例。
% convmv -f shift_jis -t utf8 file.ext
これで確認して、OKなら、--notest を末尾に加えて、実行(最終リネーム)という手順が普通だ。あえて文字化け?で書き込むために、まずUTF-8エンコードされたファイル名のファイルを用意する。
touch "【山の声〜ある登山者の追想】後編.mp3"
touch "【山の声〜ある登山者の追想】解説.mp3"
2つのファイルができました。ゼロバイトファイルです。
これで一回文字化けさせるために、UTF-8からS_JISに変更します……
コマンド略。……
(そして、以下の、◆◆◆?◆は、実際の文字化けイメージ。Shift_JISとしては正しいです。ファイルが壊れているわけではありません)
% convmv -f shift_jis -t utf8 *.mp3 --notest
mv "./◆◆◆?◆.mp3" "./【山の声〜ある登山者の追想】解説.mp3"
mv "./◆◆◆?◆.mp3" "./【山の声〜ある登山者の追想】後編.mp3"
Ready!
これで戻りました。但し、冒頭で記したように、fuseなNTFS上ではうまくいかないようです。なぜだ。fuseで使ってきて理解不能でした。