硬鏈接與軟連接的區別_(轉)

首先我們需要了解linux下硬鏈接以及軟連接的基本概念.

硬鏈接:新建的文件是已經存在的文件的一個別名,當原文件刪除時,新建的文件仍然可以使用.

軟鏈接:也稱爲符號鏈接,新建的文件以“路徑”的形式來表示另一個文件,和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,並在磁盤上有一小片空間存放路徑名。因此,軟鏈接能夠跨文件系統,也可以和目錄鏈接!其二,軟鏈接可以對一個不存在的文件名進行鏈接,但直到這個名字對應的文件被創建後,才能打開其鏈接。

發佈了37 篇原創文章 · 獲贊 6 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章