Filesystems

有關硬/軟連結的資訊儲存在哪裡?

  • June 21, 2016

*nix 系統在哪裡儲存有關特定 inode 的硬連結數量的資訊?我找不到任何相關資訊。到處都是硬連結,但很少有涉及inode相關內容的更高級的資訊。

一個 inode 儲存有關連結數量的資訊,但它是從哪裡獲得的呢?我可以通過只知道 inode 編號來定位所有連結(硬連結和軟連結)嗎?

硬連結計數儲存在 inode 中。文件創建時從1開始,每次系統呼叫成功加1,每次link系統呼叫成功減1 unlink

找到指向同一個文件的所有硬連結的唯一方法,即找到通向給定inode 的所有路徑名,是遍歷整個文件系統並比較inode 編號。inode 不指向目錄條目。

目錄是一個特例:它們的硬連結遵循嚴格的規則。(一些 unix 變體允許 root 繞過這些規則,但管理員的風險是。)到目錄的硬連結是它的.條目,它的子..條目,以及它的父目錄中的一個條目(父目錄是目錄..條目到達的目錄)。

無法找到指向文件的所有符號連結。它們可以在任何地方,包括在未安裝的文件系統上。

使用 GNU 或 FreeBSD 查找,您可以使用find /some/dir -samefile /path/to/foo查找. 使用該選項,您可以找到該文件的所有軟連結和硬連結。您可以使用謂詞而不是./path/to/foo``/some/dir``-L``-inum``-samefile

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