SSブログ

Linuxでファイル名の文字コードを変換する(文字化けを直す) [Linux]

Windows のファイルを Linux にコピーしたり、
Linux のディストリビューションの違いなどで、日本語ファイル名の文字が
文字化けを起こすことがあります。

Windows と Linux 間のファイル名の文字化けは、
Windows が CP932 という文字コードを採用しているのに対し、
Linux では最近は UTF-8 を採用していることに由来します。

ちなみに、Windows といえば Shift-JISと思われがちですが、
厳密には CP932 という規格で、Shift-JISを拡張したものです。
(この話は、また後日書きたいと思います)

また、Linuxのディストリビューションの違いによるものは、
以前までは EUC-JP がよく使われていましたが、
最近はどのディストリビューションも UTF-8 に移行しています。
あたしが愛用する Vine Linux も 5.0から UTF-8になりました。

ファイル名の文字コードを変換するときには、convmv コマンドを使用します。

Vine Linux にはデフォルトでインストールされていたと思いますが、
Ubuntu や Fedora ではデフォルトでは入っていません。
Ubuntu は、apt-get、Fedora は yum で簡単にインストール出来ます。

apt-get の場合

$ sudo apt-get install convmv

yum の場合

$ sudo yum install convmv


例えば、CP932 から UTF-8 に変換する場合は、以下のように実行します。

$ convmv -f cp932 -t utf-8 * --notest

これで、カレントディレクトリのすべてのファイル名の文字コードが
CP932 から UTF-8 に変換されます。

なお、最後の --notest は、どのように変換がされるか確認せずに、
実際に変換を行うオプションです。
もし、間違えて変換を行うと元に戻すのは大変ですから、
最初は --notest をつけずに変換結果を確認すべきです。

また、カレントディレクトリ以下のファイル名をすべて
EUC-JP から UTF-8 に変換する場合は、

$ convmv -r -f euc-jp -t utf-8 * --notest

というように、-r オプションをつけて再帰的に実行します。


なお、あたしは昔、FTPサーバの文字コードの指定を間違えて
運用していて、このコマンドには随分お世話になりましたw

図解でわかるLinux環境設定のすべて
西村 めぐみ
日本実業出版社
売り上げランキング: 7075



nice! 1

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

トラックバックの受付は締め切りました

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。