Hard-Link

兩個硬連結文件共享 inode

  • September 16, 2015

我正在為我的大學課程做作業,其中一個問題要求用於創建從一個文件到另一個文件的硬連結的命令,以便它們指向同一個 inode。我們連結了一個 .pdf 文件以供參考,但它沒有解釋上述過程。它與創建標準硬連結有什麼不同嗎?

硬連結不在文件“之間”,只有一個inode,各個目錄中的 >1 個條目都指向那個 inode。ls -i應該顯示索引節點,然後嘗試使用ln(硬連結)和ln -s(軟連結或符號連結):

$ touch afile
$ ln -s afile symbolic
$ ln afile bfile
$ ls -1 -i afile symbolic bfile
7602191 afile
7602191 bfile
7602204 symbolic
$ readlink symbolic
afile
$

沒有任何東西inode被允許存在。

人們通常相信什麼inode是在 UFS 中重新實現的 UNIXv6/UNIXv7 文件系統的實現細節。請注意,您不能依賴實施細節。

根本沒有授權,inode structure授權存在的只是inode number可用於標識特定文件的文件。

當您“硬連結”一個文件時,系統所做的就是安排一個目錄條目,使您在為所有連結文件發出 stat() 系統呼叫時獲得相同的 inode 編號。

在仍然使用 inode 結構的文件系統上,這是通過讓目錄條目指向相同的 inode 結構來完成的。

在使用寫時複製的現代文件系統上,因此源自我 1991 年的 WOFS 論文(ZFS 就是這樣一個文件系統),沒有 inode 結構。

我的 WOFS 使用gnodes了一個 gnode 編號,該編號在每次對文件的寫入操作時都替換為一個新編號(因為在這種情況下有一個新的 gnode 寫入到不同的位置)。然而,還有一個額外的 inode 編號隨著時間的推移保持穩定。在 WOFS 上,“硬連結”被實現為與 inode 相關的符號連結,而 WOFS 上的“符號連結”是與名稱相關的符號連結。請注意,對於具有 5 個指向同一文件的名稱的硬連結文件,存在 5 個 gnode 結構。

ZFS 混合使用了 inode 和 gnode 概念。ZFS 作為一種現代文件系統,但不像 1970 年代那樣有效。

引用自:https://unix.stackexchange.com/questions/230123