下面是我個人在學習linux/unix環境編程中總結的軟連結與永久連結的區別,僅供參考
軟連結可以跨檔案系統,永久連結則不可以。
永久連結和源檔案分享權限設定一個inode,這說明本質上還是同一個檔案,而軟連結與源檔案擁有各自的inode,說明他們是獨立的不同的檔案。
再查看檔案屬性時(ls -l),軟連結標明的時連結檔案,而永久連結則沒有標出,因為本質上永久連結和源檔案是對等的。
inode節點中的連結指標數不同,建立永久連結時會使源檔案的inode節點中的連結指標的數加一,而軟連結不會。
檔案大小不同,永久連結檔案的大小與源檔案相同,而軟連結的大小時源檔案檔案名稱的長度。
軟連結的檔案中包含了源檔案的路徑資訊,所以源檔案移動位置時再訪問該檔案的軟連結則會找不到源檔案。而永久連結則可以隨意移動。
軟連結可以為一個目錄建立一個軟連結,而只有root使用者才可以為目錄檔案建立永久連結。
可以為不存在的檔案建立軟連結,但不可以建立永久連結。
例子
1:軟連結
命令:Ln –s /etc/inittab /test/inittab.soft
查看:ls –l /etc/initab /test/inittab.soft
發現軟串連類似於windows的捷徑,—>表示真實檔案的地址
2:永久連結
命令: ln /etc/inittab /test/inittab.hard
查看: ls -l /etc/inittab /test/inittab.hard
發現永久連結與真實檔案的大小和建立日期完全相同,類似於copy,同步更新。
3:永久連結與拷貝的區別:
發現拷貝與真實檔案的建立日期不同。
4: 若想複製時日期相同,可以通過命令:cp –p /etc/inittab /test/inittab2
5:永久連結的同步更新
軟串連類似於捷徑,訪問的就是源檔案,所有肯定是跟源檔案同步。
而永久連結類似於拷貝,但是卻擁有同步更新的功能,再此我們可以驗證。
首先在/test目錄下建立檔案link
(1) 分別穿件link的軟串連檔案和永久連結檔案,link.soft link.hard
(2) 向源檔案link 寫入資料
(3) 查看三個檔案的內容
發現永久連結檔案與源檔案同步更新
6:刪除源檔案後,對永久連結和軟串連的影響
軟串連類似捷徑,所有當源檔案不存在時,它也無效。
而永久連結屬於拷貝,仍然存在。
7:為什麼永久連結可以同步更新?
同樣建立了一個檔案link 和它的軟連結和永久連結檔案,
通過命令ls –i ,發現永久連結檔案和源檔案的i結點數字相同,而核心是根據檔案的i結點來標識檔案的,這兩個檔案的i結點相同,所有被認為是一個檔案,所有同時寫入和修改資料。
8:永久連結的要求
永久連結不能跨檔案系統,即不能跨分區,類似於windows內不能將C盤的永久連結放在D盤。而軟連結可以放在任何檔案系統。
好了到此關於軟連結與永久連結我估計各位也多少瞭解了一些了。