[轉] Linux文件系統之hard link&symbol link


 

這個圖很清楚的表示出硬鏈接和軟鏈接的方式。

1.硬鏈接:

基本定義:硬鏈接是有着相同inode號的僅文件名不同的文件(該文件名包含路徑信息)。

理解:如圖,hard link和原始file通過同一個inode實現鏈接。在使用stat/ls -li查看這兩個文件名的時候,可以看到他們的inode號是一樣的。

特性:

文件有相同的inode和data block

只能對已存在的文件進行創建hard link

不能交叉文件系統進行創建

不能對目錄進行創建,只能對文件創建

刪除一個hard link文件並不影響其他有相同inode 號的文件,並且該文件也不會被刪除,只有等到所有的硬鏈接都刪除了,才刪除該inode及其相關data block的信息


2.軟鏈接:

基本定義:某文件的數據塊中存放的內容是另一文件的路徑名的指向(通過實驗發現,省去了相同的路徑部分)。則該文件就是symbol link。symbol link 有着自己的inode號以及用戶數據塊。

理解:如圖,symbol link有自己的inode,但是其數據塊中的內容是所鏈接的文件的文件名。

特性:

  • 軟鏈接有自己的文件屬性及權限等;
  • 可對不存在的文件或目錄創建軟鏈接;
  • 軟鏈接可交叉文件系統;
  • 軟鏈接可對文件或目錄創建;
  • 創建軟鏈接時,鏈接計數 i_nlink 不會增加;
  • 刪除軟鏈接並不影響被指向的文件,但若被指向的原文件被刪除,則相關軟連接被稱為死鏈接(即 dyling link,若被指向路徑文件被重新創建,死鏈接可恢復為正常的軟鏈接)。

相關操作:
創建硬鏈接:
ln 原始文件 硬鏈接文件
ln -s 原始文件 軟鏈接文件
stat或者ls -li 文件名 查看inode號等信息
find 起始目錄 -inum 1000 :從起始目錄開始查找inode號為1000的文件


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM