Linux下用檔案的inode刪除檔案

來源:互聯網
上載者:User

檔案的inode定義了檔案的大小、所有人等檔案的特徵。每個檔案和目錄都有自己唯一的inode數字。但是為什麼用inode來刪除檔案,而不是用常用的rm -rf命令呢?原因是,如果你不小心建立了含有特殊字元的檔案和目錄,比如帶有 ? * ^ 的檔案名稱,就會很難刪除。下面我們就來介紹一下:1)如何找出檔案和目錄的inode;2)配合find命令,刪除特定的inode檔案;3)其他有用的刪除頑固檔案的方法。

* 如何找出檔案的inode?

用stat 或者ls -il 。帶有 -i 參數的ls命令,就是指顯示檔案的inode。

* 找到inode後,如何刪除這個檔案?
find . -inum [inode數字] -exec rm -i {} /;

1)下面我們完整實驗一下,建立一個帶特殊字元的檔案:

$ cd /tmp
$ touch “/+Xy /+/8″
$ ls

2)嘗試用rm命令刪除

$ rm /+Xy /+/8

3)找出這個檔案的inode數字

$ ls -il
342137 -rw-r–r– 1 tw tw 0 2008-11-20 08:57 /+Xy /+/8

4)342137就是我們要找的inode數字。下面用find命令刪除它

$ find . -inum 342137 -exec rm -i {} /;

比如,你的系統中有”2008/11/20″這個檔案,用rm是刪除不了的。Linux不允許你建立這個檔案,但是Windows下就可以。所以find配合inode的用處就在這裡。

下面介紹一下其他有用的刪除技巧:

* 可以嘗試用檔案名稱加引號的方法刪除檔案。比如 “–help”檔案,可以用rm “–help”刪除

* 也可以用unlink刪除檔案。unlink 。unlink命令調用unlink函數,可以刪除一個特定檔案

* 用mtools刪除Windows下建立的非法檔案。這種方法在find命令配合inode失效時,最為有用。專門對付autorun.inf病毒建立的檔案夾。

也可以xargs配合rm大量刪除在不同位置的檔案:把待刪檔案的完整路徑都寫入一個文字檔,如file.txt內容如下:
file1
/tmp/file2.txt
~/data.txt

然後運行下面的命令刪除file.txt中所列的檔案
$ xargs rm

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.