Linux硬鏈結與軟鏈結區別

2021-10-23 08:57:49 字數 1603 閱讀 9773

linux鏈結分兩種,一種被稱為硬鏈結(hard link),另一種被稱為符號鏈結(symbolic

link)。預設情況下,ln命令產生硬鏈結。

※軟鏈結可以看作是windows中的快捷方式,可以讓你快速鏈結到目標檔案或目錄。

※ 硬鏈結則透過檔案系統的inode來產生新檔名,而不是產生新檔案。

【硬連線】

a是b的硬鏈結(a和b都是檔名),則a的目錄項中的inode節點號與b的目錄項中的inode節點號相同,即乙個inode節點對應兩個不同的檔名,兩個檔名指向同乙個檔案,a和b對檔案系統來說是完全平等的。如果刪除了其中乙個,對另外乙個沒有影響。每增加乙個檔名,inode節點上的鏈結數增加一,每刪除乙個對應的檔名,inode節點上的鏈結數減一,直到為0,inode節點和對應的資料塊被**。注:檔案和檔名是不同的東西,rm a刪除的只是a這個檔名,而a對應的資料塊(檔案)只有在inode節點鏈結數減少為0的時候才會被系統**。

【軟連線】

a是b的軟鏈結(a和b都是檔名),a的目錄項中的inode節點號與b的目錄項中的inode節點號不相同,a和b指向的是兩個不同的inode,繼而指向兩塊不同的資料塊。但是a的資料塊中存放的只是b的路徑名(可以根據這個找到b的目錄項)。a和b之間是「主從」關係,如果b被刪除了,a仍然存在(因為兩個是不同的檔案),但指向的是乙個無效的鏈結。

a.不能對目錄建立硬鏈結,原因有幾種,最重要的是:檔案系統不能存在鏈結環(目錄建立時的"…"除外,這個系統可以識別出來),存在環的後果會導致例如檔案遍歷等操作的混亂(du,pwd等命令的運作原理就是基於檔案硬鏈結,順便一提,ls -l結果的第二列也是檔案的硬鏈結數,即inode節點的鏈結數)

b:不能對不同的檔案系統建立硬鏈結,即兩個檔名要在相同的檔案系統下。

c:不能對不存在的檔案建立硬鏈結,由原理即可知原因。

a.可以對目錄建立軟鏈結,遍歷操作會忽略目錄的軟鏈結。

b:可以跨檔案系統

c:可以對不存在的檔案建立軟鏈結,因為放的只是乙個字串,至於這個字串是不是對於乙個實際的檔案,就是另外一回事了

ln 語法格式

建立:

ln -s 【目標目錄】 【軟鏈結位址】

ln -s /usr/local/python3/bin/python3 /usr/bin/python3

ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

刪除:

rm -rf 【軟鏈結位址】

#正確的刪除方式(刪除軟鏈結,但不刪除實際資料)

rm -rf .

/test

#錯誤的刪除方式

rm -rf .

/test/

(這樣就會把原來test下的內容刪除)

修改

ln -snf 【新目標目錄】 【軟鏈結位址】

linux硬鏈結與軟鏈結區別

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

Linux 軟鏈結與硬鏈結區別

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

硬鏈結與軟鏈結區別

學過作業系統的人都應該了解硬鏈結與軟鏈結,我當時學的時候也是有點迷糊,其實硬鏈結與軟鏈結非常好理解。我們都知道windows裡面的快捷方式的概念吧,鏈結就相當於快捷方式,linux裡面建立軟鏈結的方式如下 軟鏈結相當於乙個指向檔案的乙個指標,而硬鏈結相當於建立了乙個檔案的副本。每個檔案都有乙個引用值...