俺メモ
ファイルの中身ではなく、ファイル名そのものの文字コードを変換するには、convmv<a class="keyword" href="http://d.hatena.ne.jp/keyword/convmv?mode=edit" rel="nofollow">?</a>というコマンドを使う。
正直言って、コマンドの名前さえ分かれば、後はググるなりmanするなり何なりすれば万事オッケーなのだが、とりあえずメモしておく。
コマンド自体は大抵、各システムのパッケージ管理システムから問題なくインストールできるはず。
使い方は-fオプションに元の文字コードを、-tに変換先の文字コードを指定し、ファイル名を続けるだけ。
今回やりたいことの性質上、化けまくってるファイルの名前を一生懸命タイプするよりは、あるディレクトリ配下をアスタリスクで指定するのがまあ普通。
コマンド実行イメージ。
$ convmv -f euc-jp -t utf8 *
(略)
No changes to your files done. Use -notest to finally rename the files.
実はこれだけでは実際に変換は行われず、単に変換後のイメージを表示するだけ。実際に変換するには、メッセージの通り、-notestをつけて実行する。
$ convmv -notest -f euc-jp -t utf8 *
(略)
サブディレクトリまで再帰的に実行したいときは、お決まりの-rオプションをつける。
また、convmv -listとすれば、指定できる文字コード一覧が表示される。
が、実際に使うのは下記3つだろう。
euc-jp, utf8, shiftjis