linux下的軟硬鏈結及其inode

2021-08-04 20:16:23 字數 1923 閱讀 6107

檔案都有檔名與資料,在 linux 上被分成兩個部分:使用者資料 (user data) 與元資料 (metadata)。使用者資料,即檔案資料塊 (data block),資料塊是記錄檔案真實內容的地方;而元資料則是檔案的附加屬性,如檔案大小、建立時間、所有者等資訊。在 linux 中,元資料中的 inode 號(inode 是檔案元資料的一部分但其並不包含檔名,inode 號即索引節點號)才是檔案的唯一標識而非檔名。檔名僅是為了方便人們的記憶和使用,系統或程式通過 inode 號尋找正確的檔案資料塊。下圖展示了程式通過檔名獲取檔案內容的過程。

linux鏈結分兩種,一種被稱為硬鏈結(hard link),另一種被稱為符號鏈結(symbolic link)。預設情況下,ln命令產生硬鏈結。

【硬連線】

硬連線指通過索引節點來進行連線。在linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配乙個編號,稱為索引節點號(inode index又稱inode)。在linux中,多個檔名指向同一索引節點是存在的。一般這種連線就是硬連線。硬連線的作用是允許乙個檔案擁有多個有效路徑名,這樣使用者就可以建立硬連線到重要檔案,以防止「誤刪」的功能。其原因如上所述,因為對應該目錄的索引節點有乙個以上的連線。只刪除乙個連線並不影響索引節點本身和其它的連線,只有當最後乙個連線被刪除後,檔案的資料塊及目錄的連線才會被釋放。也就是說,檔案真正刪除的條件是與之相關的所有硬連線檔案均被刪除。

【軟連線】

另外一種連線稱之為符號連線(symbolic link),也叫軟連線。軟鏈結檔案有類似於windows的快捷方式。它實際上是乙個特殊的檔案。在符號連線中,檔案實際上是乙個文字檔案,其中包含的有另一檔案的位置資訊。

實驗測試:

1).刪除符號連線f3,對f1,f2無影響;

2).刪除硬連線f2,對f1,f3也無影響;

3).刪除原檔案f1,對硬連線f2沒有影響,導致符號連線f3失效;

4).同時刪除原檔案f1,硬連線f2,整個檔案會真正的被刪除。

軟硬鏈結的特性

①檔案有相同的 inode 及 data block;

②只能對已存在的檔案進行建立;

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

④不能對目錄進行建立,只可對檔案建立;

⑤刪除乙個硬鏈結檔案並不影響其他有相同 inode 節點的檔案。

軟鏈結與硬鏈結不同,若檔案使用者資料塊中存放的內容是另一檔案的路徑名的指向,則該檔案就是軟連線。軟鏈結就是乙個普通檔案,只是資料塊內容有點特殊。軟鏈結有著自己的 inode 號以及使用者資料塊。因此軟鏈結的建立與使用沒有類似硬鏈結的諸多限制:

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

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

⑶軟鏈結可交叉檔案系統;

⑷軟鏈結可對檔案或目錄建立;

⑸建立軟鏈結時,鏈結計數 i_nlink 不會增加;

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

Linux下的軟硬鏈結

硬鏈結 其實就是給磁碟中的資料在起乙個別名,相當於是我們可以通過不同的檔名訪問磁碟中相同的資料塊。硬鏈結 其實就是乙個檔案中包含有另乙個檔案的路徑名,當然我們可以通過訪問軟鏈結檔案去找到和原始檔中相同的內容。因為軟連線檔案中包含的是原始檔的路徑名。在linnux下如何建立軟鏈結的命令 ln s 源檔...

Linux下軟硬鏈結簡介

1 軟鏈結 也稱為符號鏈結 1.類似windows快捷方式 2.可以跨檔案系統建立 3.占用新的inode號 4.占用少量的磁碟空間 5.刪除原始檔後,軟鏈結檔案無效 軟鏈結訪問檔案的流程 cat tmp enp3s0.soft檔案 enp3s0.soft etc ifcfg enp3s0 inod...

Linux下建立軟 硬鏈結

在linux系統中,核心為每乙個新建立的檔案分配乙個inode 索引節點 每個檔案都有唯一的inode號。檔案屬性儲存在索引節點裡,在訪問檔案時,索引節點被複製到記憶體,從而實現檔案的快速訪問。鏈結是一種在共享檔案和訪問它的使用者的若干目錄項之間建立聯絡的一種方法。有硬鏈結和軟鏈結,軟鏈結又稱為符號...