Linux 硬鏈結與軟鏈結的區別

2021-09-11 04:02:04 字數 2683 閱讀 8625

此文是原博主從好幾遍blog中 拼湊起來的,不過能看懂。 我略加修改,並標註了重點,以便於閱讀。希望對你有幫助~

對於乙個檔案來說,有唯一的索引接點(inode)與之對應,而對於乙個索引接點號,卻可以有多個檔名與之對應。因此,在磁碟上的同乙個檔案可以通過不同的路徑去訪問該檔案。注意在linux下是一切皆檔案的啊,資料夾、新加的硬碟 ...都可以看著檔案來處理的啊。

連線有軟連線和硬連線(hard link)之分的,軟連線(symbolic link)又叫符號連線。符號連線相當於windows 下的快捷方式。

***************************

不可以對  資料夾/目錄  建立硬連線的,我們通常用的還是軟連線比較多。    

eg:ln -s source file1 file2        # 建立軟連線

ln source file1 file2            # 建立硬連線

----------------------

軟鏈結實際上只是一段文字,裡面包含著它所指向的檔案的名字,系統看到軟鏈結後自動跳到對應的檔案位置處進行處理;相反,硬鏈結為檔案開設乙個新的目錄項,硬鏈結與檔案原有的名字是平權的,在linux看來它們是等價的。由於這個原因,硬鏈結不能連線兩個不同檔案系統上的檔案。

軟連線與windows下的快捷方式類似。

至於硬連線,舉個例子說吧,你把dir1/file1硬連線到dir2/file2, 就是在dir2下建立乙個dir1/file1的映象檔案file2,它與file1是占用一樣大的空間的,並且改動兩者中的乙個,另乙個也會發生同樣的改動.

軟連線和硬連線可以這樣理解:

硬連線就像乙個檔案有多個檔名,

軟連線就是產生乙個新檔案(這個檔案內容,實際上就是記當要鏈結原檔案路徑的資訊),這個檔案指向另乙個檔案的位置,

硬連線必須在同一檔案系統中,而軟連線可以跨檔案系統

硬連線 :源檔名和鏈結檔名都指向相同的實體地址,目錄不能夠有硬連線,檔案在磁碟中只有乙個複製,可以節省硬碟空間,由於刪除檔案要在同乙個索引節點屬於唯一的連線時才能成功,因此可以防止不必要的誤刪除

軟連線:(符號連線)用ln -s命令建立檔案的符號連線,符號連線是linux特殊檔案的一種,作為乙個檔案,它的資料是它所連線的檔案的路徑名,類似於硬體方式,******可以刪除原始檔案 而連線檔案仍然存在。********

鏈結有兩種方式,軟鏈結和硬鏈結。

軟鏈結又叫符號鏈結,這個檔案包含了另乙個檔案的路徑名。可以是任意檔案或目錄,可以鏈結不同檔案系統的檔案。

**********鏈結檔案甚至可以鏈結不存在的檔案,這就產生一般稱之為"斷鏈"的問題(或曰「現象"),鏈結檔案甚至可以迴圈鏈結自己。類似於程式語言中的遞迴。

用ln -s 命令可以生成乙個軟連線,如下:

[root@linux236 test]#ln -s  source_file softlink_file

在對符號檔案進行讀或寫操作的時候,系統會自動把該操作轉換為對原始檔的操作,但刪除鏈結檔案時,系統僅僅刪除鏈結檔案,而不刪除原始檔本身。

info ln 命令告訴您,硬鏈結是已存在檔案的另乙個名字(a "hard link" is another name for an existing file),這多少有些令人困惑。硬連線的命令是

ln -d existfile newfile

硬鏈結檔案有兩個限制

1)、不允許給目錄建立硬鏈結;

2)、只有在同一檔案系統中的檔案之間才能建立硬鏈結。

***********對硬鏈結檔案進行讀寫和刪除操作時候,結果和軟鏈結相同。但如果我們刪除硬鏈結檔案的原始檔,硬鏈結檔案仍然存在,而且保留了願有的內容。

***********這時,系統就「忘記」了它曾經是硬鏈結檔案。而把他當成乙個普通檔案。

硬連線指通過索引節點來進行的連線。在linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配乙個編號,稱為索引節點號(inode number)。

在linux中,多個檔名指向同一索引節點是存在的。一般這種連線就是硬連線。*******硬連線的作用是允許乙個檔案擁有多個有效路徑名,這樣使用者就可以建立硬連線到重要

檔案,以防止「誤刪」的功能。其原因如上所述,因為對應該目錄的索引節點有乙個以上的連線。只刪除乙個連線並不影響索引節點本身和其它的連線,只有當最後乙個

連線被刪除後,檔案的資料塊及目錄的連線才會被釋放。也就是說,檔案才會被真正刪除。

軟鏈結檔案有點類似於windows的快捷方式。它實際上是特殊檔案的一種。在符號連線中,檔案實際上是乙個文字檔案,其中包含的有另一檔案的位置資訊。

軟鏈結是另乙個檔案,作用可以理解為乙個指標,******作用在這個檔案上的操作除了刪除都直接轉向實際指向檔案,由於是乙個真實的檔案所以占用磁碟空間。

硬鏈結可以認為不是乙個檔案,它只是實際檔案的乙個別名,它的作用是防止真實檔案被誤操作,給乙個檔案建立硬鏈結後,他們互為別名,刪除其中任意乙個,(例如rm命令只會刪除該別名) 實際檔案並不會被刪除。只有鏈結數為0時,才會刪除原始檔案。

linux硬鏈結與軟鏈結區別

1.linux鏈結概念 linux鏈結分兩種,一種被稱為硬鏈結 hard link 另一種被稱為符號鏈結 symbolic link 預設情況下,ln命令產生硬鏈結。硬連線 硬連線指通過索引節點來進行連線。在linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配乙個編號,稱為索引節...

Linux 軟鏈結與硬鏈結區別

在linux系統中,一定會遇到這樣一種檔案,當我們使用ll 或者ls l命令來檢視他的時候,他的許可權這一項中會顯示的第乙個英文本母為l,這便是代表他是鏈結檔案。而鏈結檔案有分為軟鏈結和硬鏈結兩種,那他們有什麼區別呢?我這就來從以下八個方面來為大家介紹一下他們的區別。2.inode number i...

Linux硬鏈結與軟鏈結區別

linux鏈結分兩種,一種被稱為硬鏈結 hard link 另一種被稱為符號鏈結 symbolic link 預設情況下,ln命令產生硬鏈結。軟鏈結可以看作是windows中的快捷方式,可以讓你快速鏈結到目標檔案或目錄。硬鏈結則透過檔案系統的inode來產生新檔名,而不是產生新檔案。硬連線 a是b的...