ファイル名をEUC-JPからUTF8に一括変換する

Red Hat 9の時は、デフォルトのロケールをEUC-JPにして使ってたのですが、CentOSに移行したのを機にUTF-8にすることにしました。
スクリプト類の中身は、nkfなりlvなりで変換すれば良いのですが、困ったのは日本語ファイル名を持ったファイル達。元々EUC-JPでファイル名を付けていたので、思いっきり文字化けしてしまいました。主にSambaやWizd経由でアクセスするTV番組を録画したMPEG2や音楽MP3などのファイルなんですが、こういうファイルはやっぱり日本語じゃないと分かり難いです。

ファイル名の文字コードを変換するのにいいツールはないかと探していて発見したのが、convmv。Perlで書かれたスクリプトでフォルダ内のファイル名を再帰的に変換してくれます。

http://j3e.de/linux/convmv/man/

ダウンロードして解凍すると、convmvというプログラムが入っています。使い方は、まず変換したいディレクトリに移動して、テスト実行します。
$ convmv -r -f euc-jp -t utf8 *

変換後のファイル名がずらーっと表示されるので、問題なければ"--notest"オプションを付けて実際に実行します。

$ convmv --notest -r -f euc-jp -t utf8 *

以上で、Linux上からは日本語ファイル名が普通に見えるようになりました。しかし、Windowsから見ると何故か文字化けしてしまいます。これは、Samba 3.0になって文字コード設定の書き方が変わったのが原因だったようで、以下のように記述することで解決しました。

unix charset = utf8
display charset = cp932
dos charset = cp932



Leave a comment


:

:

:

:

このエントリーのはてなブックマーク (-)