什麼是硬連結?
硬連結(hard link):A是B的硬連結(A和B都是檔案名稱),則A的目錄項目中的inode節點號與B的目錄項目中的inode節點號相同,即一個inode節點對應兩個不同的文件名,兩個文件名指向同一個文件,A和B對文件系統來說是完全平等的。
(推薦教學:linux教學)
如果刪除了其中一個,對另一個沒有影響。每增加一個檔名,inode節點上的連結數增加一,每刪除一個對應的檔名,inode節點上的連結數減一,直到0,inode節點和對應的資料塊回收。
註:檔案和檔案名稱是不同的東西,rm A刪除的只是A這個檔案名,而A對應的資料區塊(檔案)只有在inode節點連結數減少為0的時候才會被系統回收。
什麼是軟連接?
軟體連線是linux中常用指令,它的功能是為某一個檔案在另一個位置建立一個同步的連結。
(影片教學推薦:linux影片教學)
具體用法是:ln -s 原始檔 目標檔。
當我們需要在不同的目錄,用到相同的文件時,我們不需要在每一個需要的目錄下都放一個必須相同的文件,我們只要在其它的目錄下用ln命令鏈接(link)就可以,不必重複的佔用磁碟空間。
區別:
1、掛載點
#只能在同種儲存媒體上的檔案之間建立硬連結(Hard Link) ,不能在不同掛載點下的文件間創建硬鏈接,對於後一種情況,可以使用軟鏈接;(區分不同掛載點與同一掛載點不同目錄)
2、目錄
軟體連線就相當於win 中的捷徑即如果軟連結一個目錄只是一個目錄的捷徑到指定位置,作業系統找這個捷徑會直接找到真實目錄下的檔案。但是硬連結的話,相當於鏡像的方式,創建一個目錄的硬連結之後,作業系統需要把這個目錄下所有的檔案都要做一次硬連結(複製一份過去),這樣作業系統在存取這個連結的時候要不斷去遍歷,大大增加複雜度,而且很容易進入死循環。
硬連結不能對目錄建立受限於檔案系統的設計。 Linux 檔案系統中的目錄均隱藏了兩個特殊的目錄,目前目錄和父目錄。其實是兩個硬鏈接,若係統運行對目錄創建硬鏈接,則會產生目錄環。
以上是軟連結與硬連結有什麼區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!