在linux中,i節點號是指inode號,用來識別不同的檔案。 Linux內部使用inode號來識別文件,而非文件名,對於系統來說,文件名是inode號的別稱,是便於用戶識別文件的,文件名和inode號是一一對應的關係,每個inode號對應一個檔名。
本教學操作環境:linux7.3系統、Dell G3電腦。
在linux中,i節點指的是inode節點。
linux中,檔案查找不是透過檔案名稱來尋找的。實際上是透過i節點來實現檔案的查找定位的。我們可以形象的將i節點看做是一個指標fip。當檔案儲存到磁碟上去的時候,檔案一定會存放到一個磁碟位置上,可以這樣想像,既然檔案資料是存放在磁碟上的,如果我們知道這個檔案資料的位址,當我們想要讀寫檔案的時候,我們是不是直接用這個地址去找文件就可以了呢?
是的,linux下,i節點其實就是可以這麼認為,把i節點看成一個指向磁碟上該檔案儲存區的位址。只不過這個地址我們通常是沒辦法直接使用的,而是透過檔案名稱來間接使用的。事實上,i節點不僅包含了檔案資料儲存區的位址,還包含了許多訊息,例如資料大小,等等檔案資訊。但是i節點是不保存檔名的。檔案名稱是保存在一個目錄項目中。每一個目錄項中都包含了檔案名稱和i節點。
我們可以透過一個圖來看看目錄項,i節點,檔案資料四者之間的關係。
從上圖可以看到,目錄項目包含了檔案名稱和i節點。
同時,你會發現上圖中,目錄項目A和目錄項目B的i節點指向同一個儲存區,其中這個儲存區存放的是printf("ha")的資料。
也就是表示helloA.c和helloB.c的內容是一樣的。
i節點號碼
每個inode都有一個號碼(即 inode號),作業系統用 inode號碼來辨識不同的檔案。
————Linux內部使用inode號來識別文件,而非文件名,對於系統來說,文件名是inode號的別名,是便於用戶識別文件的,文件名和inode號是一一對應的關係,每個inode號對應一個檔名。
inode號是系統辨識的唯一編碼,而檔案名稱只是為了使用者區分辨認,inode (index node )表中包含檔案系統所有檔案清單一個節點(索引節點)是在一個表格項,包含有關文件的資訊(元資料)。
硬碟分割區後的結構:
#當使用者在Linux系統中試圖存取一個檔案時,系統會先根據文件名去查找它對應的inode號碼;透過inode號碼,獲取inode信息;根據inode信息,看該用戶是否具有訪問這個文件的權限;如果有,就指向相對應的數據block,並讀取數據;如果沒有就會返回。
存取檔案的簡單流程:
通常不需要關注單一inode的大小,而是需要專注於inode總數,inode的總數在格式化時就已經定好了
——為什麼需要重點關注inode總數,因為當inode用完時,即便磁碟還有空間也無法建立新檔案了,因為在建立檔案時需要一個inode號與之對應,而沒有inode時自然無法建立新檔案。
執行「df-i」指令即可查看每個硬碟分割區對應的的inode總數和已經使用的inode數量。
#inode包含檔案的元訊息,具體有以下的內容:
兩種方式查看某個檔案的inode資訊
方法一:stat [檔案名稱]
範例:stat aa.txt
優點:可以查看檔案inode 的詳細資訊
方法二:ls -i [檔案名稱]
#只能顯示inode號碼
Linux系統檔案三個主要的時間屬性(即inode 裡的時間戳記)
#由於inode號碼與檔案名稱分離,導致一些Unix/Linux系統有以下的現象:
如何透過刪除inode號刪除檔案:
方法一(刪除前需確認訊息):find ./ -inum [inode號] -exec rm -i {} \ ;
#方法二(直接刪除):find ./ -inum [inode號] -delete
相關推薦:《Linux影片教學》
以上是linux的i節點號碼是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!