天天看點

硬連結與軟連接配接的差別

硬連結:建立的檔案是已經存在的檔案的一個别名,當原檔案删除時,建立的檔案仍然可以使用.

軟連結:也稱為符号連結,建立的檔案以“路徑”的形式來表示另一個檔案,和Windows的快捷方式十分相似,建立的軟連結可以指向不存在的檔案.

下面詳細介紹一下硬連結和軟連接配接之間的差別.

1.硬連結和原來的檔案沒有什麼差別,而且共享一個 inode 号(檔案在檔案系統上的唯一辨別);而軟連結不共享 inode,也可以說是個特殊的 inode,是以和原來的 inode 有差別。

2.若原檔案删除了,則該軟連接配接則不可以通路,而硬連接配接則是可以的。

3.由于符号連結的特性,導緻其可以跨越磁盤分區,但硬連結不具備這個特性.

另外在轉載一下網上的介紹.

硬連結(hard link) ln 

UNIX檔案系統提供了一種将不同檔案連結至同一個檔案的機制,我們稱這種機制為連結。它可以使得單個程式對同一檔案使用不同的名字。這樣的好處是檔案系統隻存在一個檔案的副本。系統簡單地通過在目錄中建立一個新的登記項來實作這種連接配接。該登記項具有一個新的檔案名和要連接配接檔案的inode号(inode與原檔案相同)。不論一個檔案有多少硬連結,在磁盤上隻有一個描述它的inode,隻要該檔案的連結數不為0,該檔案就保持存在。硬連結不能對目錄建立硬連結!

硬連接配接是直接建立在節點表上的(inode),建立硬連接配接指向一個檔案的時候,會更新節點表上面的計數值。舉個例子,一個檔案被連接配接了兩次(硬連接配接),這個檔案的計數值是3,而無論通過3個檔案名中的任何一個通路,效果都是完全一樣的,但是如果删除其中任意一個,都隻是把計數值減1,不會删除實際的内容的,(任何存在的檔案本身就算是一個硬連接配接)隻有計數值變成0也就是沒有任何硬連接配接指向的時候才會真實的删除内容。

軟連結(symbolic link) ln-s

我們把符号連結稱為軟連結,它是指向另一個檔案的特殊檔案,這種檔案的資料部分僅包含它所要連結檔案的路徑名。軟連結是為了克服硬連結的不足而引入的,軟連結不直接使用inode号作為檔案指針,而是使用檔案路徑名作為指針(軟連結:檔案名 + 資料部分-->目标檔案的路徑名)。軟體有自己的inode,并在磁盤上有一小片空間存放路徑名。是以,軟連結能夠跨檔案系統,也可以和目錄連結!其二,軟連結可以對一個不存在的檔案名進行連結,但直到這個名字對應的檔案被建立後,才能打開其連結。

本文轉自babylater51CTO部落格,原文連結:http://blog.51cto.com/babylater/1874993 ,如需轉載請自行聯系原作者

繼續閱讀