最近、ネット上のとあるファイルをwget
でダウンロードしたら失敗し、文字化けしたファイルが出来上がってしましました。
もちろん不要なので、普通にrm
コマンドで削除しようと試みたのですが、破損していて削除することができませんでした。
調べてみると、inodeと呼ばれる番号を指定して削除する方法があったのでメモしておきます。
文字化けした破損ファイルを削除
まずは、いつも通り文字化けしたファイル名を指定して、rm
コマンドで強制削除してみましょう。
rm -f [ファイル名]
すると、何事もなかったように処理が終了します。
ん!?消えたのか?と思い、ファイルを確認すると…
ls -al
-rw-r--r-- 1 root root 64 May 19 13:11 [ファイル名]
消えてないじゃないの!
何度やっても結果は同じ。
どうしたものか。。
調べた結果、次のような削除方法を見つけました!
inode番号を検索して削除
Linuxには、データファイルの情報を保存・管理する「inode(index 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 |
- Original:https://minory.org/linux-rm-by-inode.html
- Source:Minory
- Author:管理者