日本語ファイル名の文字コードを変換するスクリプト

以下はSJISの日本語ファイル名をUTF-8に変換する例。
コマンドはiconvを使用するので、ほとんどのOSで動作するはず。


追記:文字列と文字コードの組み合わせによっては上手く動作しない(文字化けしたファイルのmvで失敗する)ことがわかったので、Perlで書き直しました。
日本語ファイル名の文字コードを変換するスクリプト(Perl版) - myhd

#!/bin/sh
for sjis_name in `find .`
do
  utf8_name=`echo "${sjis_name}" | iconv -f SJIS -t UTF-8`
  if [ "${sjis_name}" != "${utf8_name}" ]; then
    mv "${sjis_name}" "${utf8_name}"
  fi
done


使える文字コード

iconv -l

で確認できます。


ちなみに、世の中にはconvmvというツールがあるらしいので、リッチな環境の方はそちらを。

Linuxでファイル名の文字コードを変換する(文字化けを直す):while(1) { ;}:So-netブログ