硬鏈結與軟鏈結(符號鏈結)

2022-06-21 23:33:16 字數 1294 閱讀 9403

我們知道檔案都有檔名與資料,這在 linux 上被分成兩個部分:使用者資料 (user data)與元資料 (metadata)

使用者資料,即檔案資料塊 (data block),資料塊是記錄檔案真實內容的地方;

元資料則是檔案的附加屬性,如檔名、檔案大小、建立時間、所有者、檔案所在的inode等資訊。

在 linux 中,元資料中的inode號(inode 號即索引節點號)才是檔案的唯一標識而非檔名。檔名僅是為了方便人們的記憶和使用,系統或程式通過inode號尋找正確的檔案資料塊。

硬鏈結是新的目錄條目,其引用系統中的現有檔案。檔案系統中的每一檔案預設具有乙個硬鏈結。為節省空間,可以不複製檔案,而建立引用同一檔案的新硬鏈結。新硬鏈結如果在與現有硬鏈結相同的目錄中建立,則需要有不同的檔名,否則需要在不同的目錄中。指向同一檔案的所有硬鏈結具有相同的許可權、連線數、使用者/組所有權、時間戳以及檔案內容。指向同一檔案內容的硬鏈結需要在相同的檔案系統中。

簡單說,硬鏈結就是乙個 inode 號對應多個檔案。就是同乙個檔案使用了多個別名(上圖中 hard link 就是 file 的乙個別名,他們有共同的 inode)

(1)檔案有相同的 inode 及 data block;

(2)只能對已存在的檔案進行建立;

(3)不能交叉檔案系統進行硬鏈結的建立;

(4)不能對目錄進行建立,只可對檔案建立;

(5)刪除乙個硬鏈結檔案並不影響其他有相同 inode 號的檔案。

建立方法:ln file newfile

軟鏈結與硬鏈結不同,若檔案使用者資料塊中存放的內容是另一檔案的路徑名的指向,則該檔案就是軟連線。軟鏈結就是乙個普通檔案,只是資料塊內容有點特殊。軟鏈結有著自己的 inode 號以及使用者資料塊。軟連線可以指向目錄,而且軟連線所指向的目錄可以位於不同的檔案系統中。

(1)軟鏈結有自己的檔案屬性及許可權等;

(2)可對不存在的檔案或目錄建立軟鏈結;

(3)軟鏈結可交叉檔案系統;

(4)軟鏈結可對檔案或目錄建立;

(5)建立軟鏈結時,鏈結計數 i_nlink 不會增加;

(6)刪除軟鏈結並不影響被指向的檔案,但若被指向的原檔案被刪除,則相關軟連線被稱為死鏈結或懸掛的軟鏈結(即 dangling link,若被指向路徑檔案被重新建立,死鏈結可恢復為正常的軟鏈結)。

建立方法:ln -s file newfile

Linux的硬鏈結與軟鏈結(符號鏈結)

linux的檔案鏈結方式分為硬鏈結與軟鏈結 也叫符號鏈結 兩種,在linux中鏈結也被視為檔案來看待,一樣可以被執行 編輯和訪問。對系統中的應用程式而言,對鏈結的操作就是對原始檔案的操作,所以鏈結不是副本。如果熟悉linux的檔案系統與目錄樹 相關部落格鏈結擴充套件檔案系統 檔案系統與目錄樹的關係 ...

硬鏈結與符號鏈結

索引節點 inode 要 了解鏈結,我們首先得了解乙個概念,叫索引節點 inode 在linux系統中,核心為每乙個新建立的檔案分配乙個inode 索引結點 每個檔案 都有乙個惟一的inode號,我們可以將inode簡單理解成乙個指標,它永遠指向本檔案的具體儲存位置。檔案屬性儲存在索引結點裡,在訪問...

硬鏈結與符號鏈結

乙個inode節點可以存在任意數目的硬鏈結。在刪除硬鏈結時,該inode節點上的資料上的資料將不會受到影響。在linux系統中可以使用ln命令來建立硬鏈結。首先用touch命令建立名為link.test的檔案。然後,輸入 ln link.test link 命令,這時就建立了指向link.test的...