軟連線與硬連結

硬連線

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

軟連線

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

無論軟連線還是硬連結都不會實際將檔案複製一份,都只會佔用很少的磁碟空間。

兩種連結的區別:

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

這時,系統就“忘記”了它曾經是硬連結檔案。而把他當成一個普通檔案。

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

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

的連線,只有當最後一個連線被刪除後,檔案的資料塊及目錄的連線才會被釋放。檔案才會被真正刪除。

注:儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配一個編號,稱為索引節點號(Inode Index即I節點)。

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