理系学生日記

おまえはいつまで学生気分なのか

文字化けしているファイル名の直し方

最近はなかなか御目にかかることのなくなった表題のような事案。たとえば、文字コードが EUC のサーバに、Windows からファイル名が Shift_JIS のファイルを FTP で置いちゃいましたーみたいな状況。
こういうのを Linux から見ると文字化けしているため、何か処理をしようとしてもコマンドが記述できない。リネームしたいけど、そもそも mv コマンドの引数に与えるべきファイル名を指定する手段がなかったりして積む。

こういうときは inode 番号を指定してやればいいです。ls には -i オプションがあって、inode 番号が表示できるので、この inode 番号を find で指定すればよいです。

$ ls -li [文字化けしたファイルが置かれているディレクトリ]

$ find [そのディレクトリ] -inum <inode 番号> | xargs -I{} mv {} 新ファイル名

みたいなかんじで良い。