Linux硬鏈接與軟連接

Linux文件包含兩部分數據,用戶數據和元數據,期中用戶數據存放的就是文件的存儲內容,元數據存儲的即是文件的屬性,所有者,權限,創建時間,還有一個最重要的就是inode號.

在Linux系統中,真正區分一個文件的是這個文件的inode號而非文件名,並且多個文件名對應一個inode號也是很常見的,因此,Linux中要真正刪除一個文件,需要將該文件inode號對應的所有不同文件名的文件路徑刪除掉,這個文件纔會真正被釋放掉.

舉個例子,有一個文件inode號爲12700,而文件A,B,C的inode號均爲12700,因此這三個文件其實都代表的是一個文件,也就是inode爲12700的文件,同樣,如果要刪除這個文件,必須將A,B,C均刪除該文件 纔會真的被釋放.

這種多個文件對應一個inode號的方式也成爲硬鏈接.

硬鏈接簡單來說就是給源文件起個別名,不佔用實際的存儲空間,刪除任何一個硬鏈接文件都不會對源文件造成影響,同樣,刪除源文件也不會對硬鏈接文件造成影響.

與之對應的還有軟連接,軟鏈接在Linux中是一種特殊的文件,佔用實際的存儲空間,特殊之處在於它的用戶數據區存儲的是另一個文件的位置信息.刪除軟連接不會對源文件影響,但刪除源文件會導致軟連接成爲一個死鏈接.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章