硬鏈接定義
新建的文件是已經存在的文件的一個別名,當原文件刪除時,新建的文件仍然可以使用.
硬鏈接(hard link) ln
UNIX文件系統提供了一種將不同文件鏈接至同一個文件的機制,稱這種機制為鏈接。它可以使得單個程序對同一文件使用不同的名字。這樣的好處是文件系統只存在一個文件的副本。系統簡單地通過在目錄中建立一個新的登記項來實現這種連接。該登記項具有一個新的文件名和要連接文件的inode號(inode與原文件相同)。不論一個文件有多少硬鏈接,在磁盤上只有一個描述它的inode,只要該文件的鏈接數不為0,該文件就保持存在。硬鏈接不能對目錄建立硬鏈接!
硬連接是直接建立在節點表上的(inode),建立硬連接指向一個文件的時候,會更新節點表上面的計數值。舉個例子,一個文件被連接了兩次(硬連接),這個文件的計數值是3,而無論通過3個文件名中的任何一個訪問,效果都是完全一樣的,但是如果刪除其中任意一個,都只是把計數值減1,不會刪除實際的內容的,(任何存在的文件本身就算是一個硬連接)只有計數值變成0也就是沒有任何硬連接指向的時候才會真實的刪除內容。
軟鏈接
也稱為符號鏈接,新建的文件以“路徑”的形式來表示另一個文件,和Windows的快捷方式十分相似,新建的軟鏈接可以指向不存在的文件.
軟鏈接(symbolic link) ln-s
把符號鏈接稱為軟鏈接,它是指向另一個文件的特殊文件,這種文件的數據部分僅包含它所要鏈接文件的路徑名。軟鏈接是為了克服硬鏈接的不足而引入的,軟鏈接不直接使用inode號作為文件指針,而是使用文件路徑名作為指針(軟鏈接:文件名 + 數據部分–>目標文件的路徑名)。軟件有自己的inode,并在磁盤上有一小片空間存放路徑名。因此,軟鏈接能夠跨文件系統,也可以和目錄鏈接!其二,軟鏈接可以對一個不存在的文件名進行鏈接,但直到這個名字對應的文件被創建后,才能打開其鏈接。
硬鏈接和軟連接之間的區別
- 硬鏈接和原來的文件沒有什么區別,而且共享一個 inode 號(文件在文件系統上的唯一標識);而軟鏈接不共享 inode,也可以說是個特殊的 inode,所以和原來的 inode 有區別。
- 若原文件刪除了,則該軟連接則不可以訪問,而硬連接則是可以的。
- 由于符號鏈接的特性,導致其可以跨越磁盤分區,但硬鏈接不具備這個特性.
原創文章,作者:zhaobenshan,如若轉載,請注明出處:http://www.www58058.com/82230