硬鏈結與軟連線

2021-06-05 03:23:56 字數 978 閱讀 8219

硬鏈結只能引用同一檔案系統中的檔案。它引用的是檔案在檔案系統中的物理索引(也稱為 inode)。當您移動或刪除原始檔案時,硬鏈結不會被破壞,因為它所引用的是檔案的物理資料而不是檔案在檔案結構中的位置。硬鏈結的檔案不需要使用者有訪問原始檔案的許可權,也不會顯示原始檔案的位置,這樣有助於檔案的安全。如果您刪除的檔案有相應的硬鏈結,那麼這個檔案依然會保留,直到所有對它的引用都被刪除。在linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配乙個編號,稱為索引節點號inode 。軟連線,其實就是新建立乙個檔案,這個檔案就是專門用來指向別的檔案的(那就和windows 下的快捷方式的那個檔案有很接近的意味)。軟連線產生的是乙個新的檔案,但這個檔案的作用就是專門指向某個檔案的,刪了這個軟連線檔案,那就等於不需要這個連線,和原來的存在的實體原檔案沒有任何關係,但刪除原來的檔案,則相應的軟連線不可用(cat那個軟鏈結檔案,則提示「沒有該檔案或目錄「)

硬連線是不會建立inode的,他只是在檔案原來的inode link count域再增加1而已,也因此硬鏈結是不可以跨越檔案系統的。相反都是軟連線會重新建立乙個inode,當然inode的結構跟其他的不一樣,他只是乙個指明原始檔的字串資訊。一旦刪除原始檔,那麼軟連線將變得毫無意義。而硬鏈結刪除的時候,系統呼叫會檢查inode link count的數值,如果他大於等於1,那麼inode不會被**。因此檔案的內容不會被刪除。

硬鏈結實際上是為檔案建乙個別名,鏈結檔案和原檔案實際上是同乙個檔案。可以通過ls -i來檢視一下,這兩個檔案的inode號是同乙個,說明它們是同乙個檔案;而軟鏈結建立的是乙個指向,即鏈結檔案內的內容是指向原檔案的指標,它們是兩個檔案。

軟鏈結可以跨檔案系統,硬鏈結不可以;軟鏈結可以對乙個不存在的檔名(filename)進行鏈結(當然此時如果你vi這個軟鏈結檔案,linux會自動新建乙個檔名為filename的檔案),硬鏈結不可以(其檔案必須存在,inode必須存在);軟鏈結可以對目錄進行連線,硬鏈結不可以。兩種鏈結都可以通過命令 ln 來建立。ln 預設建立的是硬鏈結。使用 -s 開關可以建立軟鏈結。

軟鏈結與硬連線

1.在 server101的 root 使用者 home 目錄下,建立乙個檔案 file1,並新增字元 123 到這 個檔案,使用 cat 命令確認 root server101 echo 123 file1 root server101 cat file1 123 root server101 l...

軟連線 硬鏈結

一 linux系統中乙個檔案由目錄項 inode表和資料塊組成。1 首先根據檔名,找到我們目錄項中的inode號。2 通過inode號進入我們inode表中,查詢到該檔案中一些資訊。3 然後通過inode表中的儲存的資料區的指標,讀取我們相應資料區的內容。二 硬鏈結 本質 是給我們的檔案取別名。與原...

linux硬鏈結與軟連線

linux通過鏈結來為檔案向使用者程式提供多個入口,linux鏈結有兩種 一種稱為硬鏈結 hard link 另一種稱為符號鏈結 symbolic link 也常被稱為軟鏈結,預設情況下,命令產生硬鏈結。硬鏈結通過索引節點 inode 進行鏈結,這樣多個檔名指向同乙個索引節點,也就使得乙個檔案可以擁...