【Linux】文字化けしたファイルをリネームする

文字化けしてしまってファイルがリネームできなくなりました。その時の対処法です。

下記の流れでリネームします。

1.文字化けしたファイルのinode番号を調べる
  • inodeには、ファイル・ディレクトリの「ファイルシステム上のオブジェクトに関する基本情報」が格納されている。
    • inode番号は、そのinodeが記録されているデバイス上で一意の整数値で、全てのファイルはinodeに物理的にリンクされている。プログラムがファイルをファイル名で参照するとき、システムはそのファイル名に対応するinodeを検索する。
2.文字化けしたファイルをinode番号で探す
  • find 検索パス -inum inode番号
3.文字化けしたファイルをリネームする
  1. find 検索パス -inum inode番号 -ok mv '{}' リネーム後のファイル名 \;
  2. find 検索パス -inum inode番号 -exec mv '{}' リネーム後のファイル名 \;
    • -okはリネームするときに確認が入ります。(y/n)
    • -execは確認なしにリネームされます。
$ ls -i
50452 a.txt 50538 文字化けしたファイル

$ find . -inum 50538
./文字化けしたファイル・ディレクトリ

$ find . -inum 50538 -exec mv '{}' リネーム後のファイル名 \;

参考

タイトルとURLをコピーしました