當前位置:名人名言大全網 - 傷感說說 - 問:inode到底是什麽?

問:inode到底是什麽?

答:inode(即索引節點)是類UNIX OS中文件系統中存儲對象元數據的數據結構。僅此而已。謝謝妳吃東西。

.....開個玩笑,再多說壹點inode和與之相關的壹些小知識。

所謂“文件系統中的對象”是壹個非常寬泛的概念。畢竟Linux中幾乎所有的東西都是文件,包括普通的文件、目錄、設備、管道、Socket等等。Inode是用來存儲這些東西的元數據的,不包括具體的數據或者文件名。具體來說,以下元數據主要存儲在inode中:

其中,inode號相當於這個結構中的“主鍵”,也就是說操作系統用inode號唯壹標識壹個文件。使用stat命令查看元數據信息,如下圖所示。您還可以通過ls-iii查看壹個文件或壹批文件的索引節點號..

存儲在inode中的元數據也會占用文件系統空間,每個inode的大小壹般為128B或256B,可以通過查詢超級塊信息的dumpe2fs命令找到。

Linux在格式化硬盤分區(即初始化文件系統)時,會將inode區(稱為inode表)與文件數據區分開,壹般會為每1KB或2KB的數據分配壹個inode號。也就是說,格式化後每個分區的inode總數是固定的,所以有可能是存儲空間沒有滿,但是因為小文件太多而耗盡了inode。

使用df -i命令,您可以查看關於inode數量的信息,如下圖所示。

我們來看看Linux系統中最常見的文件操作是如何體現inode的。

復制文件時,會創建壹個包含新信息節點的新文件。

移動文件時,只有索引節點指向的位置會發生變化,而索引節點編號和實際數據存儲塊的位置都不會發生變化。

Linux系統允許同壹個inode號代表的文件有多個文件名,也就是妳可以用不同的文件名訪問同壹個數據,這就是所謂的硬鏈接。創建壹個文件的硬鏈接,它的inode號是壹樣的,鏈接的數量會增加。

特別是這兩項。還有。默認情況下,目錄中包含的實際上是到當前目錄和父目錄的硬鏈接,並且inode編號也是對應的。

但是Linux系統不允許用戶創建指向目錄的硬鏈接,因為Linux的目錄結構是無環圖,隨意創建硬鏈接後會產生環。

軟鏈接的本質也是壹個文件,它存儲的內容是指向另壹個文件的指針。因此,在創建指向文件的軟鏈接時,inode編號會有所不同,指向文件的鏈接數量不會增加。妳可以在目錄和不存在的文件之間創建軟鏈接。

刪除文件時,首先檢查inode中的鏈接數量。如果鏈接數大於1,則只刪除壹個硬鏈接,不影響數據。如果鏈接數量等於1,那麽inode將被釋放,相應的塊將被標記為空閑。

從上圖可以看出,如果刪除上面的profile_copy文件,那麽原來創建的兩個硬鏈接文件就會變成兩個不同的文件(其中壹個會繼承原來的inode號),鏈接數為1,仍然可以正常訪問。相對來說,軟鏈接文件就成了懸空鏈接,無法正常訪問。

使用inode,還可以刪除壹些文件名中帶有轉義字符或控制字符的文件,最典型的就是開頭帶有減號的文件。這不能用rm命令直接完成,所以您可以在刪除它們之前找出它們的索引節點號:

僅此而已。謝謝妳吃東西。