linux 硬軟鏈結區別

2022-08-04 22:09:17 字數 1106 閱讀 5855

linux 硬軟鏈結區別

linux的軟連線(symbolic link or soft link)類似於windows的快捷方式;而硬鏈結(hard link)機制有點像copy,不過不同的是,帶有同步機制,一處修改,在另一處都會看到,並且一處刪除對應檔案後,並不影響另一處的正常使用。

硬鏈結與軟鏈結是 linux 檔案系統中的乙個重要概念,其涉及檔案系統中的索引節點 (index node 又稱 inode),而索引節點物件是 linux 虛擬檔案系統 (vfs) 的基本概念之一。通過剖析硬鏈結與軟鏈結的聯絡與區別,我們可更好的了解 linux 中 vfs 這一通用檔案模型。

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

硬鏈結不能對目錄建立是受限於檔案系統的設計。現 linux 檔案系統中的目錄均隱藏了兩個個特殊的目錄:當前目錄(.)與父目錄(..)。檢視這兩個特殊目錄的 inode 號可知其實這兩目錄就是兩個硬鏈結。若系統允許對目錄建立硬鏈結,則會產生目錄環。

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

linux 下共存的基礎就是 linux vfs(virtual file system 又稱 virtual filesystem switch),即虛擬檔案系統。vfs 作為乙個通用的檔案系統,抽象了檔案系統的四個基本概念:檔案、目錄項 (dentry)、索引節點 (inode) 及掛載點,其在核心中為使用者空間層的檔案系統提供了相關的介面。vfs 實現了 open()、read() 等系統調並使得 cp 等使用者空間程式可跨檔案系統。vfs 真正實現了上述內容中:在 linux 中除程序之外一切皆是檔案。

linux硬鏈結與軟鏈結區別

1.linux鏈結概念 linux鏈結分兩種,一種被稱為硬鏈結 hard link 另一種被稱為符號鏈結 symbolic link 預設情況下,ln命令產生硬鏈結。硬連線 硬連線指通過索引節點來進行連線。在linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配乙個編號,稱為索引節...

linux 硬鏈結和軟鏈結區別

硬鏈結有點類似於複製的概念。ln 原始檔 目的檔案 ln不加 s,則預設是硬鏈結。例如,ln script script hard,ls命令顯示,script 顯示硬鏈結有兩個。我任意刪除其中乙個,ls命令顯示剩下的檔案硬鏈結為1 當建立script hard時,linux會為其分配乙個新的inod...

Linux軟鏈結硬鏈結的區別

ln是linux中又乙個非常重要命令,它的功能是為某乙個檔案在另外乙個位置建立乙個同步的鏈結.當我們需要在不同的目錄,用到相同的檔案時,我們不需要在每乙個需要的目錄下都放乙個必須相同的檔案,我們只要在某個固定的目錄,放上該檔案,然後在 其它的目錄下用ln命令鏈結 link 它就可以,不必重複的占用磁...