Symlink
符號連結文件的實際內容
我搜尋但找不到任何東西 - 我正在尋找 ext 文件系統中以字節為單位的符號連結文件結構的細分。
我嘗試創建一個符號連結文件,然後
hexdump
在符號連結上使用,但它抱怨它是一個目錄(連結指向一個文件夾),所以它顯然試圖轉儲連結指向的文件/文件夾而不是連結本身。
您沒有提供額外的細節,所以這個解釋目前集中在 Linux 中常見的 EXT 文件系統上。
如果您查看 eg 提供的符號連結的“大小”
ls -l
,您會注意到大小與它指向的目標名稱一樣長。因此,您可以推斷“實際”文件僅包含連結目標的路徑作為文本,而作為符號連結的解釋儲存在文件類型元數據中(特別是連結文件的 inode 欄位中S_IFLINK
的標誌i_mode
附加到,其中還儲存了權限位;請參閱此核心文件參考)。為了提高性能並減少設備 IO,如果符號連結短於 60 字節,它將儲存在
i_block
inode 本身的欄位中(請參閱此處)。由於這使得單獨的塊訪問變得不必要,因此這些連結被稱為“快速符號連結”,而不是指向更長路徑的符號連結,後者回退到將連結目標作為文本儲存在外部數據塊中的“傳統”方法。