サイトアイコン IT NEWS

Linux上で文字化けして破損したファイルを削除する方法

linux-rm-by-inode

最近、ネット上のとあるファイルwgetでダウンロードしたら失敗し、文字化けしたファイルが出来上がってしましました。
もちろん不要なので、普通にrmコマンド削除しようと試みたのですが、破損していて削除することができませんでした。
調べてみると、inodeと呼ばれる番号を指定して削除する方法があったのでメモしておきます。


文字化けした破損ファイルを削除

まずは、いつも通り文字化けしたファイル名を指定して、rmコマンド強制削除してみましょう。

rm -f [ファイル名]

すると、何事もなかったように処理が終了します。
ん!?消えたのか?と思い、ファイルを確認すると…

ls -al
-rw-r--r-- 1 root root   64 May 19 13:11 [ファイル名]

消えてないじゃないの!
何度やっても結果は同じ。
どうしたものか。。
調べた結果、次のような削除方法を見つけました!

inode番号を検索して削除

Linuxには、データファイルの情報を保存・管理する「inodeindex node)」という領域があるらしいです。
inode番号とは、ファイルの所有者や更新日時、サイズなどを管理している管理番号で、これを指定することでファイル削除できるようです。
では、実際にやってみましょう!

inode番号を調べる

lsコマンド-iオプションを付けることで、inode番号が確認できます。

ls -li
1234567890 -rw-r--r-- 1 root root   64 May 19 13:11 [ファイル名]

表示されたファイル一覧の左端にある番号がinode番号になります。
これを使ってファイル検索して削除します。

inode番号で削除する

削除対象のファイルがあるディレクトリまで移動し、上記で調べたinode番号(1234567890)を以下の箇所に入れて実行すると削除できます!

find . -inum 1234567890 -exec rm -rf {} \;

これで綺麗サッパリ消えたはずです。
めでたし、めでたし。

引用

はじめにCentOSにログインした時、lsで/homeディレクトリにゴミがあることに気づいた。名前が??x?・4a???とよくわからないことになっている。おそらくWindows OSで作成したデータファイルをterater...
CentOS上の文字化けしたファイルを削除する - Qiita - Qiita
The post Linux上で文字化けして破損したファイルを削除する方法 first appeared on Minory.

モバイルバージョンを終了