連結有兩種,一種被稱為硬連結(Hard Link),另一種被稱為符号連結(Symbolic Link,也叫做軟連結)。預設情況下,ln指令産生硬連結。
(一)硬連結
1.産生硬連結的文法
# ln 源檔案 目标檔案 (注意:不能為目錄建立硬連結)
2.關于inode
inode 譯成中文就是索引節點。每個儲存設備或儲存設備的分區(儲存設備是硬碟、軟碟、U盤 ... ... )被格式化為檔案系統後,應該有兩部份,一部份是inode,另一部份是Block,Block是用來存儲資料用的。而inode呢,就是用來存儲這些資料的資訊,這些資訊包括檔案大小、屬主、歸屬的使用者組、讀寫權限等。inode為每個檔案進行資訊索引,是以就有了inode的數值。作業系統根據指令,能通過inode值最快的找到相對應的檔案。
硬連接配接指通過索引節點來進行的連接配接。在Linux的檔案系統中,儲存在磁盤分區中的檔案不管是什麼類型都給它配置設定一個編号,稱為索引節點号(Inode Index)。在Linux中,多個檔案名指向同一索引節點是存在的。一般這種連接配接就是硬連接配接。硬連接配接的作用是允許一個檔案擁有多個有效路徑名,這樣使用者就可以建立硬連接配接到重要檔案,以防止“誤删”的功能。其原因如上所述,因為對應該目錄的索引節點有一個以上的連接配接。隻删除一個連接配接并不影響索引節點本身和其它的連接配接,隻有當最後一個連接配接被删除後,檔案的資料塊及目錄的連接配接才會被釋放。也就是說,檔案才會被真正删除。
3.inode相同的檔案是硬連結檔案
在Linux 檔案系統中,inode值相同的檔案是硬連結檔案,也就是說,不同的檔案名,inode可能是相同的,一個inode值可以對應多個檔案。
inode值相同的檔案,他們的關系是互為硬連結的關系。當我們修改其中一個檔案的内容時,互為硬連結的檔案的内容也會跟着變化。如果我們删除互為硬連結關系的某個檔案時,其它的檔案并不受影響。
(二)軟連結(符号連結)
與硬連接配接相對應,Lnux系統中還存在另一種連接配接,稱為符号連接配接(Symbilc Link),也叫軟連接配接。軟連結檔案有點類似于Windows的快捷方式。它實際上是特殊檔案的一種。在符号連接配接中,檔案實際上是一個文本檔案,其中包含的有另一檔案的位置資訊。
1.産生軟連結的文法
# ln -s 源檔案或目錄 目标檔案或目錄
2.關于軟連結
軟連結也叫符号連結,它和硬連結有所不同,軟連結檔案隻是其源檔案的一個标記。當我們删除了源檔案後,連結檔案不能獨立存在,雖然仍保留檔案名,但我們卻不能檢視軟連結檔案的内容了。
值得我們注意的是:當我們修改連結檔案的内容時,就意味着我們在修改源檔案的内容。當然源檔案的屬性也會發生改變,連結檔案的屬性并不會發生變化。當我們把源檔案删除後,連結檔案隻存在一個檔案名,因為失去了源檔案,是以軟連結檔案也就不存在了。這一點和硬連結是不同的;
(三)示例
touch f1(建立一個f1的檔案)
ln f1 f2 創佳一個f2的硬連接配接
ln -s f1 f3 建立一個f3的軟連接配接