【Linux】文字化けで消えないファイル・ディレクトリを削除する

業務中にファイル名を変更した際に、文字化けしてしまって対象のファイルが消せなくなりました。その時の対処法です。
ちなみに*(アスタリスク)でも削除できませんでした。

下記の流れで削除します。

1.文字化けしたファイル・ディレクトリのinode番号を調べる
  • inodeには、ファイル・ディレクトリの「ファイルシステム上のオブジェクトに関する基本情報」が格納されている。
    • inode番号は、そのinodeが記録されているデバイス上で一意の整数値で、全てのファイルはinodeに物理的にリンクされている。プログラムがファイルをファイル名で参照するとき、システムはそのファイル名に対応するinodeを検索する。
2.文字化けしたファイル・ディレクトリをinode番号で探す
  • find 検索パス -inum inode番号
3.文字化けしたファイル・ディレクトリを削除する
  1. find 検索パス -inum inode番号 | xargs rm -rf
  2. find 検索パス -inum inode番号 -exec rm -rf {} \;
    • xargsを使用する前者のコマンドの方が高速です。
$ ls -i
45128762376 a.txt 55866199552 文字化けしたファイル・ディレクトリ

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

$ find . -inum 55866199552 | xargs rm -rf

参考

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