如何查找给定 inode 的所有硬链接?

如何查找给定 inode 的所有硬链接?

有没有一种方法可以按路径/文件名,甚至仅按文件名列出指向给定 inode 的所有硬链接?我有一个ls -al报告有三个硬链接的文件,但它应该只有两个。我该如何找到恶意硬链接?

我发现了另一个帖子: 如何查找给定文件的所有硬链接?

但它只找到名称相同的文件。这些硬链接的名称可能相同/可能不同。

答案1

链接的文件可以位于文件系统中的任何位置,而不仅仅是直接父级中。这将报告全部主目录中具有三个或更多硬链接的文件,按 inode 分组。您可能已经发现了一个示例,但可能还有其他感兴趣的示例:

find ~ -type f -links +2 -printf 'inode %i links %n name %p\n' | sort -n

我没有任何三向,但这是我对全局双向硬链接的测试。

$ find ~ -type f -links +1 -printf 'inode %i links %n name %p\n' | sort -n
find: ‘/home/paul/.gvfs’: Permission denied
find: ‘/home/paul/.cache/dconf’: Permission denied
inode 6173828 links 2 name /home/paul/Calhoun.post
inode 6173828 links 2 name /home/paul/SandBox/JpgTool/Calhoun.again
inode 6296398 links 2 name /home/paul/SandBox/fileGroup/fileGroup.V05
inode 6296398 links 2 name /home/paul/SandBox/fileGroup/myHardLink

相关内容