Linux下用檔案的inode刪除檔案

2021-07-16 16:33:56 字數 1202 閱讀 9340

檔案的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

Linux下用檔案的inode刪除檔案

檔案的inode定義了檔案的大小 所有人等檔案的特徵。每個檔案和目錄都有自己唯一的inode數字。但是為什麼用inode來刪除檔案,而不是用常用的rm rf命令呢?原因是,如果你不小心建立了含有特殊字元的檔案和目錄,比如帶有 的檔名,就會很難刪除。下面我們就來介紹一下 1 如何找出檔案和目錄的ino...

Linux下的inode記錄

檔案儲存在硬碟上,硬碟的最小儲存單位叫做 扇區 sector 每個扇區儲存512位元組 相當於0.5kb 作業系統讀取硬碟的時候,不會乙個個扇區地讀取,這樣效率太低,而是一次性連續讀取多個扇區,即一次性讀取乙個 塊 block 這種由多個扇區組成的 塊 是檔案訪問的最小單位。塊 的大小,最常見的是4...

Linux下的inode記錄

檔案儲存在硬碟上,硬碟的最小儲存單位叫做 扇區 sector 每個扇區儲存512位元組 相當於0.5kb 作業系統讀取硬碟的時候,不會乙個個扇區地讀取,這樣效率太低,而是一次性連續讀取多個扇區,即一次性讀取乙個 塊 block 這種由多個扇區組成的 塊 是檔案訪問的最小單位。塊 的大小,最常見的是4...