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 09797648 -rw-r--r-- 2 oracle oinstall 0 Apr 21 08:11 f19797648 -rw-r--r-- 2 oracle oinstall 0 Apr 21 08:11 f29797649 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 f1I am f1 file[oracle@Linux]$ cat f2I am f1 file[oracle@Linux]$ cat f3I am f1 file[oracle@Linux]$ rm -f f1[oracle@Linux]$ cat f2I am f1 file[oracle@Linux]$ cat f3cat: f3: No such file or directory
通過上面的測試可以看出:當刪除原始檔案f1後,硬串連f2不受影響,但是符號串連f1檔案無效
3.總結
依此您可以做一些相關的測試,可以得到以下全部結論:
1).刪除符號串連f3,對f1,f2無影響;
2).刪除硬串連f2,對f1,f3也無影響;
3).刪除原檔案f1,對硬串連f2沒有影響,導致符號串連f3失效;
4).同時刪除原檔案f1,硬串連f2,整個檔案會真正的被刪除。
完!
感謝,Thanks!
作者:iTech
出處:http://itech.cnblogs.com/
本文著作權歸作者iTech所有,轉載請包含作者簽名和出處,不得用於商業用途,非則追究法律責任!