Symlink

符號連結文件的實際內容

  • September 18, 2020

我搜尋但找不到任何東西 - 我正在尋找 ext 文件系統中以字節為單位的符號連結文件結構的細分。

我嘗試創建一個符號連結文件,然後hexdump在符號連結上使用,但它抱怨它是一個目錄(連結指向一個文件夾),所以它顯然試圖轉儲連結指向的文件/文件夾而不是連結本身。

您沒有提供額外的細節,所以這個解釋目前集中在 Linux 中常見的 EXT 文件系統上。

如果您查看 eg 提供的符號連結的“大小” ls -l,您會注意到大小與它指向的目標名稱一樣長。因此,您可以推斷“實際”文件僅包含連結目標的路徑作為文本,而作為符號連結的解釋儲存在文件類型元數據中(特別是連結文件的 inode 欄位中S_IFLINK的標誌i_mode附加到,其中還儲存了權限位;請參閱此核心文件參考)。

為了提高性能並減少設備 IO,如果符號連結短於 60 字節,它將儲存在i_blockinode 本身的欄位中(請參閱此處)。由於這使得單獨的塊訪問變得不必要,因此這些連結被稱為“快速符號連結”,而不是指向更長路徑的符號連結,後者回退到將連結目標作為文本儲存在外部數據塊中的“傳統”方法。

引用自:https://unix.stackexchange.com/questions/609474