1.Linux連接概念
Linux連接分兩種,一種被稱爲硬連接(Hard Link),另外一種被稱爲符號連接(Symbolic Link)。默認狀況下,ln命令產生硬連接。node
【硬鏈接】
硬鏈接指經過索引節點來進行鏈接。在Linux的文件系統中,保存在磁盤分區中的文件無論是什麼類型都給它分配一個編號,稱爲索引節點號(Inode Index)。在Linux中,多個文件名指向同一索引節點是存在的。通常這種鏈接就是硬鏈接。硬鏈接的做用是容許一個文件擁有多個有效路徑名,這樣用戶就能夠創建硬鏈接到重要文件,以防止「誤刪」的功能。其緣由如上所述,由於對應該目錄的索引節點有一個以上的鏈接。只刪除一個鏈接並不影響索引節點自己和其它的鏈接,只有當最後一個鏈接被刪除後,文件的數據塊及目錄的鏈接纔會被釋放。也就是說,文件真正刪除的條件是與之相關的全部硬鏈接文件均被刪除。oracle
硬鏈接 ln 源文件 連接名測試
【軟鏈接】
另一種鏈接稱之爲符號鏈接(Symbolic Link),也叫軟鏈接。軟連接文件有相似於Windows的快捷方式。它其實是一個特殊的文件。在符號鏈接中,文件其實是一個文本文件,其中包含的有另外一文件的位置信息。spa
軟鏈接 ln -s 源文件 連接名索引
注意源文件必須是使用絕對路徑,否則,只能在同一目錄下使用,若是連接名和源文件沒在同一個目錄,就會報錯,通常使用軟連接必須將源文件的路徑寫成絕對路徑file
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 directorytouch
經過上面的測試能夠看出:當刪除原始文件f1後,硬鏈接f2不受影響,可是符號鏈接f1文件無效di
3.總結依此您能夠作一些相關的測試,能夠獲得如下所有結論:1).刪除符號鏈接f3,對f1,f2無影響;2).刪除硬鏈接f2,對f1,f3也無影響;3).刪除原文件f1,對硬鏈接f2沒有影響,致使符號鏈接f3失效;4).同時刪除原文件f1,硬鏈接f2,整個文件會真正的被刪除。