萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> Linux如何使用inode刪除文件

Linux如何使用inode刪除文件

   文件的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

copyright © 萬盛學電腦網 all rights reserved