Linux 硬連結和軟連線
1.1 介紹
硬連結:(hard link)
只針對於檔案,透過索引節點來進行連結, 在系統每一個檔案和目錄都會有一個 inode 索引節點,可以透過 ls –il 來檢視當前目錄下所有檔案和目錄的 inode,而系統中的所有檔案都不會有相同的 indoe 。如果有相同的 indoe 那麼這個檔案連結著另一個文 件,內容是相同的並同步,稱為硬連結。可以使用 ls –l 命令顯示出它的硬連結數。刪掉原始檔,硬連結檔案正常使用。
軟連線:(symbolic link) 也稱為符號連結
檔案和目錄都可以,軟連線類似於 windows 下的快捷方式,刪掉原始檔後,軟連線將不能正常使用。
1.2 實踐
建立硬連結
#ln 原始檔 目標檔案
建立軟連線
#ln –s 原始檔 目標檔案
1.2.1 硬連結
#mkdir /test

#cd /test

#touch aaa.txt

#echo “I am system administrator” >> aaa.txt

#ln aaa.txt /test/aaa.txt_hard_link

#ls -il

1144062 -rw-r–r– 2 root root 26 Feb 20 20:17 aaa.txt

1144062 -rw-r–r– 2 root root 26 Feb 20 20:17 aaa.txt_hard_link
可以看到兩個檔案的索引節點完全相同,而且硬連結數為 2,檔案本身也是 1 個硬連結數,每增加一個硬連結就加 1, 而且裡面的內容完全相同
#mkdir bbb

#ln bbb /test/bbb.txt_hard_link

ln: `bbb’: hard link not allowed for directory
硬連結是不能對目錄操作
如果刪掉 aaa.txt 原始檔,它的硬連結檔案 aaa.txt_hard_link 可以正常工作
1.2.2 軟連結
#ln –s aaa.txt /test/aaa.txt_soft_link

#ls –il

1144062 -rw-r–r– 2 root root 26 Feb 20 20:17 aaa.txt

1144062 -rw-r–r– 2 root root 26 Feb 20 20:17 aaa.txt_hard_link

1144065 lrwxrwxrwx 1 root root 7 Feb 20 20:55 aaa.txt_soft_link -> aaa.txt
檔案型別是 l 連結檔案,
可以對檔案或目錄使用軟連線,刪掉原始檔 aaa.txt. 它的軟連線檔案 aaa.txt_soft_link 不能正常使用
1.3 作用
軟連結:可以簡短路徑和檔名等
硬連結:可以對資料備份等,
檔案連結數:建立出的新檔案它的硬連結數是 1,檔案本身是一個硬連結。
目錄連結數:目錄硬連結是 2 因為目錄本身也是一個硬連結,目錄裡的. 點 (當前目錄) 也是一個硬連結