Ham*_*ava 23 filesystems hard-link symlink
我有一个文件在~/file.txt.
我通过以下方式创建了硬链接:
ln ~/file.txt ~/test/hardfile.txt
Run Code Online (Sandbox Code Playgroud)
和一个符号链接文件:
ln -s ~/file.txt ~/test/symfile.txt
Run Code Online (Sandbox Code Playgroud)
现在,
我们可以通过 找到符号链接文件->,但是硬链接呢?

gol*_*cks 36
-rw--r--r-- 2 kamix users 5 Nov 17:10 hardfile.txt
^
Run Code Online (Sandbox Code Playgroud)
这是文件具有的硬链接数。“硬链接”实际上是在两个目录条目之间;他们真的是同一个文件。您可以通过查看以下输出来判断stat:
stat hardlink.file | grep -i inode
Device: 805h/2053d Inode: 1835019 Links: 2
Run Code Online (Sandbox Code Playgroud)
再次注意链接的数量是 2,这表明在某处还有该文件的另一个列表。您知道这是与另一个文件相同的文件的原因是它们具有相同的 inode 编号;没有其他文件会有那个。不幸的是,这是找到它们的唯一方法(通过 inode 编号)。
find在这个 Q&A 中有一些关于如何最好地通过 inode(例如, with )查找文件的想法。
一个硬链接文件有多个链接(2在权限标志之后)。您可以使用该stat命令轻松提取此信息:
$ stat --printf '%h\n' hardfile.txt
2
Run Code Online (Sandbox Code Playgroud)
有关其他值以及如何打印它们的信息,请参阅stat( man 1 stat)的联机帮助页。