硬鏈結與軟鏈結

2021-06-19 07:53:42 字數 2184 閱讀 4908

1.linux

鏈結概念

linux

鏈結分兩種,一種被稱為硬鏈結(

hard link

),另一種被稱為符號鏈結(

symbolic link

)。預設情況下,

ln命令產生硬鏈結。

【硬連線】

硬連線指通過索引節點來進行連線。在

linux

的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配乙個編號,稱為索引節點號

(inode index)

。在linux

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

」的功能。其原因如上所述,因為對應該目錄的索引節點有乙個以上的連線。只刪除乙個連線並不影響索引節點本身和其它的連線,只有當最後乙個連線被刪除後,檔案的資料塊及目錄的連線才會被釋放。也就是說,檔案真正刪除的條件是與之相關的所有硬連線檔案均被刪除。

硬連線的2個限制:

l  不允許給目錄建立硬鏈結

l  只有在同一檔案系統中的檔案之間才能建立鏈結。 即不同硬碟分割槽上的兩個檔案之間不能夠建立硬鏈結。這是因為硬鏈結是通過結點指向原始檔案的,而檔案的i-結點在不同的檔案系統中可能會不同。

【軟連線】

另外一種連線稱之為符號連線(

symbolic link

),也叫軟連線。軟鏈結檔案有類似於

windows

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

這就允許符號鏈結(經常簡寫為symlinks)指向位於其他分割槽、甚至是其他網路硬碟上的某個檔案 2.

通過實驗加深理解

[oracle@linux]$ touch f1          #

建立乙個測試檔案

f1[oracle@linux]$ ln f1 f2          #

建立f1

的乙個硬連線檔案

f2[oracle@linux]$ ln -s f1 f3       #

建立f1

的乙個符號連線檔案

f3[oracle@linux]$ ls -li            # -i

引數顯示檔案的

inode

節點資訊

total 0

9797648 -rw-r--r--  2 oracle oinstall 0 apr 21 08:11 f1

9797648 -rw-r--r--  2 oracle oinstall 0 apr 21 08:11 f2

9797649 lrwxrwxrwx  1 oracle oinstall 2 apr 21 08:11 f3 -> f1

從上面的結果中可以看出,硬連線檔案

f2與原檔案f1的

inode

節點相同,均為

9797648

,然而符號連線檔案的

inode

節點不同。

[oracle@linux]$ echo "i am f1 file" >>f1

[oracle@linux]$ cat f1

i am f1 file

[oracle@linux]$ cat f2

i am f1 file

[oracle@linux]$ cat f3

i am f1 file

[oracle@linux]$ rm -f f1

[oracle@linux]$ cat f2

i am f1 file

[oracle@linux]$ cat f3

cat: f3: no such file or directory

通過上面的測試可以看出:當刪除原始檔案

f1後,硬連線

f2不受影響,但是符號連線

f3檔案無效

3.總結

1).刪除符號連線

f3,對

f1,f2

無影響;

2).刪除硬連線

f2,對

f1,f3

也無影響;

3).刪除原檔案

f1,對硬連線

f2沒有影響,導致符號連線

f3失效;

4).同時刪除原檔案

f1,硬連線

f2,整個檔案會真正的被刪除。

軟鏈結與硬鏈結

linux unix中有兩種鏈結,硬鏈結和軟鏈結,均由ln命令來建立。軟鏈結1ln ssource target 建立source檔案的軟鏈結target 123 456dutor dutor desktop ln s gvim.tgz gvim dutor dutor desktop ln s h...

軟鏈結與硬鏈結

一 理解軟鏈結與硬鏈結 1 inode號 在理解軟鏈結與硬鏈結之前讓我們來了解乙個重要的基礎知識 inode節點 linux檔案系統中的索引節點,又稱 index node inode號是檔案的唯一標識,而非檔案名字,它就像我們的身份證號一樣。系統或程式通過 inode 號尋找正確的檔案資料塊。li...

硬鏈結與軟鏈結

我們都知道檔案都有檔名與資料,這在 linux 上被分成兩個部分 使用者資料與元資料。使用者資料,即檔案資料塊 資料塊是記錄檔案真實內容的地方。而元資料則是檔案的附加屬性,如檔案大小 建立時間 所有者等資訊。在 linux中,元資料中的 inode號 inode 是檔案元資料的一部分但其並不包含檔名...