Filesystems
有關硬/軟連結的資訊儲存在哪裡?
*nix 系統在哪裡儲存有關特定 inode 的硬連結數量的資訊?我找不到任何相關資訊。到處都是硬連結,但很少有涉及inode相關內容的更高級的資訊。
一個 inode 儲存有關連結數量的資訊,但它是從哪裡獲得的呢?我可以通過只知道 inode 編號來定位所有連結(硬連結和軟連結)嗎?
硬連結計數儲存在 inode 中。文件創建時從1開始,每次系統呼叫成功加1,每次
link
系統呼叫成功減1unlink
。找到指向同一個文件的所有硬連結的唯一方法,即找到通向給定inode 的所有路徑名,是遍歷整個文件系統並比較inode 編號。inode 不指向目錄條目。
目錄是一個特例:它們的硬連結遵循嚴格的規則。(一些 unix 變體允許 root 繞過這些規則,但管理員的風險是。)到目錄的硬連結是它的
.
條目,它的子..
條目,以及它的父目錄中的一個條目(父目錄是目錄..
條目到達的目錄)。無法找到指向文件的所有符號連結。它們可以在任何地方,包括在未安裝的文件系統上。
使用 GNU 或 FreeBSD 查找,您可以使用
find /some/dir -samefile /path/to/foo
查找. 使用該選項,您可以找到該文件的所有軟連結和硬連結。您可以使用謂詞而不是./path/to/foo``/some/dir``-L``-inum``-samefile