Linux軟鏈結和硬鏈結

2021-06-28 02:25:36 字數 1604 閱讀 4092

1.linux鏈結概念

linux鏈結分兩種,一種被稱為硬鏈結(hard link),另一種被稱為符號鏈結(symbolic link)。預設情況下,ln命令產生硬鏈結。

【硬鏈結】

硬鏈結指通過索引節點來進行鏈結。在linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配乙個編號,稱為索引節點號(inode index)。在linux中,多個檔名指向同一索引節點是存在的。一般這種鏈結就是硬鏈結。硬鏈結的作用是允許乙個檔案擁有多個有效路徑名,這樣使用者就可以建立硬鏈結到重要檔案,以防止「誤刪」的功能。其原因如上所述,因為對應該目錄的索引節點有乙個以上的鏈結。只刪除乙個鏈結並不影響索引節點本身和其它的鏈結,只有當最後乙個索引節點被刪除後,檔案的資料塊及目錄的鏈結才會被釋放。也就是說,即使刪除了硬鏈結的原始檔,只要還存在原始檔的某個硬鏈結,檔案不會被真正刪除。

【軟鏈結】

另外一種鏈結稱之為符號鏈結(symbolic link),也叫軟鏈結。軟鏈結檔案有類似於windows的快捷方式。它實際上是乙個特殊的檔案。在符號鏈結中,檔案實際上是乙個文字檔案,其中包含的有另一檔案的位置資訊。

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

3.總結

1) 刪除符號鏈結3,對f1,f2無影響;

2) 刪除硬鏈結f2,對f1,f3也無影響;

3) 刪除原始檔f1,對硬鏈結f2沒有影響,導致符號連線f3失效;

4) 同時刪除原始檔f1,硬鏈結f2,整個檔案會真正被刪除。

摘抄自

Linux 硬鏈結和軟鏈結

硬鏈結是通過鏈結原始檔的索引節點來進行有效鏈結。linux系統中的每個檔案都有乙個自己的索引節點,如同資料庫中的每條記錄都有自己的唯一索引一樣。自我感覺硬鏈結就像是windows下乙個檔案的拷貝,唯一不同的地方是多個該檔案的拷貝 硬鏈結 通過原始檔的索引節點來共享和更新自己的內容,一旦該節點上的任一...

Linux軟鏈結和硬鏈結

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

Linux軟鏈結和硬鏈結

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