硬鏈結與符號鏈結的區別

2021-06-25 17:05:49 字數 2529 閱讀 6571

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

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

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

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

ln source dist            # 建立硬連線

它們到底有什麼區別呢?上次也好好的看了,好象同檔案系統的結構有一定的關係,沒怎麼太詳細的研究下次看明白了再加上。

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

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

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

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

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

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

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

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

硬連線 :源檔名和鏈結檔名都指向相同的實體地址,目錄不能夠有硬連線,檔案在磁碟中只有乙個複製,可以節省硬碟空間,由於刪除檔案要在同乙個索引節點屬於唯一的連線時才能成功,因此可以防止不必要的誤刪除軟連線(符號連線)用ln -s命令建立檔案的符號連線,符號連線是linux特殊檔案的一種,作為乙個檔案,它的資料是它所連線的檔案的路徑名,類似於硬體方式,******可以刪除原始檔案 而連線檔案仍然存在。********

本文試圖清晰徹底的解釋軟鏈結和硬鏈結檔案的區別

一 鏈結檔案

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

1 軟鏈結檔案

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

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

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

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

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

2 硬鏈結檔案

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時,才會刪除原始檔案。

硬鏈結與符號鏈結

索引節點 inode 要 了解鏈結,我們首先得了解乙個概念,叫索引節點 inode 在linux系統中,核心為每乙個新建立的檔案分配乙個inode 索引結點 每個檔案 都有乙個惟一的inode號,我們可以將inode簡單理解成乙個指標,它永遠指向本檔案的具體儲存位置。檔案屬性儲存在索引結點裡,在訪問...

硬鏈結與符號鏈結

乙個inode節點可以存在任意數目的硬鏈結。在刪除硬鏈結時,該inode節點上的資料上的資料將不會受到影響。在linux系統中可以使用ln命令來建立硬鏈結。首先用touch命令建立名為link.test的檔案。然後,輸入 ln link.test link 命令,這時就建立了指向link.test的...

硬鏈結與符號鏈結

我們首先來了解一下幾個名詞。索引節點 inode 要了解鏈結,我們首先得了解乙個概念,叫索引節點 inode 在linux系統中,核心為每乙個新建立的檔案分配乙個inode 索引結點 每個檔案都有乙個惟一的inode號,我們可以將inode簡單理解成乙個指標,它永遠指向本檔案的具體儲存位置。檔案屬性...