軟連接與硬鏈接

硬連接

硬連接指通過索引節點來進行連接。在Linux的文件系統中,保存在磁盤分區中的文件不管是什麼類型都給它分配一個編號,稱為索引節點號(Inode Index)。在Linux中,多個文件名指向同一索引節點是存在的。一般這種連接就是硬連接。硬連接的作用是允許一個文件擁有多個有效路徑名,這樣用户就可以建立硬連接到重要文件,以防止“誤刪”的功能。其原因如上所述,因為對應該目錄的索引節點有一個以上的連接。只刪除一個連接並不影響索引節點本身和其它的連接,只有當最後一個連接被刪除後,文件的數據塊及目錄的連接才會被釋放。也就是説,文件真正刪除的條件是與之相關的所有硬連接文件均被刪除。

軟連接

另外一種連接稱之為符號連接(Symbolic Link),也叫軟連接。軟鏈接文件有類似於Windows的快捷方式。它實際上是一個特殊的文件。在符號連接中,文件實際上是一個文本文件,其中包含的有另一文件的位置信息。

無論軟連接還是硬鏈接都不會實際將文件複製一份,都只會佔用很少的磁盤空間。

兩種鏈接的區別:

硬鏈接文件有兩個限制
1、不允許給目錄創建硬鏈接;
2、只有在同一文件系統中的文件之間才能創建鏈接,而且只有超級用户才有建立硬鏈接權限。
對硬鏈接文件進行讀寫和刪除操作時候,結果和軟鏈接相同。但如果我們刪除硬鏈接文件的源文件,硬鏈接文件仍然存在,而且保留了願有的內容。

這時,系統就“忘記”了它曾經是硬鏈接文件。而把他當成一個普通文件。

那麼我們就可以這樣理解:硬連接指通過索引節點來進行的連接,其作用是允許一個文件擁有多個有效路徑名,能夠達到誤刪除的作用。

其原因是因為對應的文件的索引節點有一個以上的連接。只刪除一個連接並不影響索引節點本身和其它

的連接,只有當最後一個連接被刪除後,文件的數據塊及目錄的連接才會被釋放。文件才會被真正刪除。

注:保存在磁盤分區中的文件不管是什麼類型都給它分配一個編號,稱為索引節點號(Inode Index即I節點)。

軟鏈接沒有硬鏈接以上的兩個限制,因而現在更為廣泛使用,它具有更大的靈活性,甚至可以跨越不同機器、不同網絡對文件進行鏈接。但是軟鏈接的缺點在於:因為鏈接文件包含有原文件的路徑信息,所以當原文件從一個目錄下移到其他目錄中,再訪問鏈接文件,系統就找不到了,而硬鏈接就沒有這個缺陷,你想怎麼移就怎麼移;還有它要系統分配額外的空間用於建立新的索引節點和保存原文件的路徑。