Linux 連接分兩種,一種被稱為硬連接(Hard Link),另一種被稱為符號連接(Symbolic Link),也就是軟連接。
默認(rèn)情況下,ln 命令產(chǎn)生硬鏈接,ln -s命令產(chǎn)生軟鏈接。
【硬連接】硬連接指通過索引節(jié)點來進行連接。在 Linux 的文件系統(tǒng)中,保存在磁盤分區(qū)中的文件不管是什么類型都給它分配一個編號,稱為索引節(jié)點號(Inode Index)。 (推薦學(xué)習(xí):linux運維)
在 Linux 中,多個文件名指向同一索引節(jié)點是存在的。一般這種連接就是硬連接。硬連接的作用是允許一個文件擁有多個有效路徑名,這樣用戶就可以建立硬連接到重要文件,以防止“誤刪”的功能。
其原因如上所述,因為對應(yīng)該目錄的索引節(jié)點有一個以上的連接。只刪除一個連接并不影響索引節(jié)點本身和其它的連接,只有當(dāng)最后一個連接被刪除后,文件的數(shù)據(jù)塊及目錄的連接才會被釋放。也就是說,文件真正刪除的條件是與之相關(guān)的所有硬連接文件均被刪除。
硬連接有 2 個限制:
不允許給目錄創(chuàng)建硬鏈接
只有在同一文件系統(tǒng)中的文件之間才能創(chuàng)建鏈接。 即不同硬盤分區(qū)上的兩個文件之
不能夠建立硬鏈接。這是因為硬鏈接是通過結(jié)點指向原始文件的,而文件的結(jié)點在不同的文件系統(tǒng)中可能會不同。
【軟連接】軟鏈接又叫符號鏈接,它實際上是一個特殊的文件,有點類似于Windows的快捷方式。這個文件包含了另一個文件的路徑名??梢允侨我馕募蚰夸?可以鏈接不同文件系統(tǒng)的文件。
鏈接文件甚至可以鏈接不存在的文件,這就產(chǎn)生一般稱之為"斷鏈"的問題(或曰“現(xiàn)象",鏈接
文件甚至可以循環(huán)鏈接自己。類似于編程語言中的遞歸。