2015年6月8日月曜日

convmv ファイル名の文字コードを変換する。つまり、リネーム。

convmvで shift_jisから utf8 にファイル名文字コードを変えることができる。相互にも可能である。便利である。

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で使ってきて理解不能でした。

0 件のコメント:

コメントを投稿