疑難檔案的刪除方案

babyyellow發表於2012-10-22
很多時候,我們會手誤,導致建立的檔案無法刪除。

例如:
[root@node96 ~]# rm -abc
rm: invalid option -- 'a'
Try `rm ./-abc' to remove the file `-abc'.
Try `rm --help' for more information.
[root@node96 ~]# rm "-abc"
rm: invalid option -- 'a'
Try `rm ./-abc' to remove the file `-abc'.
Try `rm --help' for more information.
[root@node96 ~]# rm '-abc'
rm: invalid option -- 'a'
Try `rm ./-abc' to remove the file `-abc'.
Try `rm --help' for more information.

刪除不掉,怎麼辦?

還是有辦法的: linux/unix 的檔案系統,在內部是透過inode 來確認具體的檔案的。
也就是說,系統內部對檔案的訪問,不需需要透過檔名進行。

那就是說我們可以透過inode 號碼來刪除檔案。
[root@node96 ~]# ls -li
total 2032
413009 -rw-r--r--  1 root root    1435 Sep 13 09:58 97
413905 -rw-r--r--  1 root root       0 Oct 22 11:20 -abc

“-abc” 檔案的 inode 號碼是413905

rm命令是沒有提供根據inode 號碼來刪檔案的功能,
unlink 命令也沒有這個選項。

怎麼辦?

可以曲線救國的。

find 命令提供了 根據inode 號碼查詢檔案的選項。

[root@node96 ~]# find  -inum 413905
./-abc

刪除就好辦了。

[root@node96 ~]# find ./ -inum 413905 -exec rm -i {} \;
rm: remove regular empty file `./-abc'? y

刪除就好了

還有一個辦法,就是包含檔案的全路徑名 用單引號 括起來也可以,不過有時候半形的字型是無法輸入的,所以工find 是正道。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/133735/viewspace-746928/,如需轉載,請註明出處,否則將追究法律責任。

相關文章