操作系統 — 淺析硬鏈接和軟鏈接

 淺析硬鏈接和軟鏈接





上一篇我們瞭解到文件系統,我們瞭解到文件系統的結構包括超級塊,inode節點,以及數據塊, 其中inode節點包含了inode數組,數組

當中存在許多的inode節點.然後每一個文件或者目錄都有自己對應的inode,其中我們又引出了其中每一個inode的節點當中有一個鏈接

計數,記錄連接該inode節點的目錄項數. 最後引出兩種鏈接方式! 分別爲硬鏈接和符號鏈接(軟鏈接)! 下圖是一個文件系統的結構圖

,以及運行過程.如果對文件系統不夠了解,我覺得你需要了解一下! 我這裏有一個博客:文件系統 你可以瞭解一下.




硬鏈接:文件A是文件B的硬鏈接,則A的目錄項中的inode節點號與B節點的inode節點號相同,既一個inode節點對應兩個不同的文件名,

兩個文件名指向一個同一個文件,A和B對於文件系統其實是完全相同的. 如果刪除了其中一個,對另外一個沒有影響. 每增加一個文件

名,inode節點上的鏈接數增加一,每刪除一個對應的文件名,inode節點上的鏈接數減一,直到爲0,inode節點和對應數據塊被回收. 

對應上圖你就可以理解硬鏈接的過程


軟鏈接: A是B的軟鏈接,A的目錄項中的inode節點號與B的目錄項中的inode節點號不同,A和B指向的是兩個不同的inode,繼而指向兩塊

不同的數據塊,但是A的數據塊存放的知識B的路徑名. A和B之間 "主從"關係,如果B被刪除了,A仍然存在,但指向的是一個無效的鏈接.


硬鏈接的特點:

1.不能對目錄創建硬鏈接,原因有幾種,最重要的是:文件系統不能存在鏈接環,存在環的後果會導致例如文件遍歷等操作的混亂.

2.不能對不同的文件系統創建硬鏈接,既兩個文件名要在相同的文件系統下.

3.不能對不存在的文件創建硬鏈接,由原理即可知真相.

軟鏈接的特點:

1.可以對目錄創建軟鏈接,便利操作會忽略目錄的軟鏈接.

2.可以跨越文件系統.

3.可以對不存在的文件創建軟鏈接,因爲放的只是一個字符串,至於這個字符串是不是對於一個實際的文件,就是另外一回事了.

硬鏈接: ln 源文件名 鏈接名
軟鏈接  ln -s 源文件名 鏈接名

硬鏈接和軟鏈接的作用:

硬鏈接的作用是允許一個文件擁有多個有效路徑名,這樣用戶就可以建立硬鏈接到重要文件,以防止"誤刪"的情況, 只刪除一個連接並不

影響節點本身和其它的鏈接,只有當最後一個連接被刪除後,文件的數據塊以及目錄的連接纔會被釋放. 也就是說,文件真正刪除的條

件是與之相關的所有硬鏈接文件均被刪除。

軟鏈接的作用:對於符號鏈接以及它指向何種對象並無任何文件系統限制,任何用戶都可以創建指向目錄的符號鏈接. 引入符號鏈接的原

因就是爲了避開硬鏈接的一些限制.軟鏈接文件類似於windows的快捷方式.它實際上是一個特殊的文件. 在符號連接中,文件實際上是

一個文本文件,其中包含的有另一文件的位置信息.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章