在Linux中ln命令用來爲文件創建連接,連接類型分爲硬連接(Hard Link)和符號連接(Symbolic Link)兩種,默認的連接類型是硬連接。如果要創建符號連接必須使用"-s"選項。那麼怎麼使用ln命令在Linux系統中創建連接文件?下面是相關的知識,歡迎閱讀。
關於軟硬連接解釋
硬連接
硬連接是指通過索引節點來進行連接。在Linux的文件系統中,保存在磁盤分區中的文件不管是什麼類型系統都會給它分配一個編號,稱爲索引節點號(Inode Index)。在Linux中,多個文件名指向同一索引節點是存在的,一般這種連接就是硬連接。硬連接的作用是允許一個文件擁有多個有效路徑名,這樣用戶就可以建立硬連接到重要文件,以防止“誤刪”的功能。其原因如上所述,因爲對應該目錄的索引節點有一個以上的連接,所以只刪除一個連接並不影響索引節點本身和其它的連接,只有當最後一個硬連接被刪除後,文件的`數據塊及目錄的連接纔會被釋放。也就是說,文件真正刪除的條件是與之相關的所有硬連接文件均被刪除。
軟連接
符號連接(Symbolic Link),也叫軟連接。軟鏈接文件又類似於Windows的快捷方式。它實際上是一個特殊的文件。在符號連接中,該文件實際上是一個文本文件,其中包含着另一文件的位置信息。
通過實驗加深理解
創建不同的類型的文件連接
root@Orangepi:~/test# touch file1 #創建一個測試文件
root@Orangepi:~/test# ln file1 file2 #創建file的一個硬連接文件file2
root@Orangepi:~/test# ln -s file1 file3 #創建file的一個符號連接文件file3
root@Orangepi:~/test# ls -li #-l參數以單列格式輸出文件信息,-i參數輸出文件的inode節點信息
total 0
28125 -rw-r--r-- 2 root root 0 Feb 16 08:29 file1
28125 -rw-r--r-- 2 root root 0 Feb 16 08:29 file2
31463 lrwxrwxrwx 1 root root 5 Feb 16 08:30 file3 -> file1
從上面的結果中可以看出,硬連接文件file2與原文件file1的inode節點相同,均爲28125,然而符號連接文件的inode節點不同。
分別對文件進行操作
root@Orangepi:~/test# cat >>file1 <
> 12345
> EOF
root@Orangepi:~/test# cat file1 #輸出文件file1內容
12345
root@Orangepi:~/test# cat file2 #輸出文件file2內容
12345
root@Orangepi:~/test# cat file3 #輸出文件file3內容
12345
root@Orangepi:~/test# rm file1 #刪除文件file1
root@Orangepi:~/test# cat file2
12345
root@Orangepi:~/test# cat file3
cat: file3: No such file or directory
通過上面的測試可以看出:當刪除原始文件file1後,硬連接文件file2不受影響,但是符號連接文件file1無效。
總結
依此你可以做一些相關的測試,可以得到以下全部結論:
1. 刪除符號連接file3,對文件file1,file2無影響;
2. 刪除硬連接file2,對文件file1,file3也無影響;
3. 刪除原文件file1,對硬連接文件file2沒有影響,但是會導致符號連接file3失效;
4. 同時刪除原文件file1以及硬連接文件file2,整個文件纔會真正的被刪除。