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 の場合
yum の場合
例えば、CP932 から UTF-8 に変換する場合は、以下のように実行します。
これで、カレントディレクトリのすべてのファイル名の文字コードが
CP932 から UTF-8 に変換されます。
なお、最後の --notest は、どのように変換がされるか確認せずに、
実際に変換を行うオプションです。
もし、間違えて変換を行うと元に戻すのは大変ですから、
最初は --notest をつけずに変換結果を確認すべきです。
また、カレントディレクトリ以下のファイル名をすべて
EUC-JP から UTF-8 に変換する場合は、
というように、-r オプションをつけて再帰的に実行します。
なお、あたしは昔、FTPサーバの文字コードの指定を間違えて
運用していて、このコマンドには随分お世話になりましたw
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
コメント 0