我有一个文件在~/file.txt
.
我通过以下方式创建了硬链接:
ln ~/file.txt ~/test/hardfile.txt
和一个符号链接文件:
ln -s ~/file.txt ~/test/symfile.txt
现在,
- 如何找出哪个文件是硬链接?
- 如何找出硬链接跟随哪个文件?
我们可以通过 找到符号链接文件->
,但是硬链接呢?
答案1
-rw--r--r-- 2 kamix users 5 Nov 17:10 hardfile.txt
^
这是文件所具有的硬链接的数量。 “硬链接”实际上是在两个目录条目之间;它们实际上是同一个文件。您可以通过查看以下输出来判断stat
:
stat hardfile.txt | grep -i inode
Device: 805h/2053d Inode: 1835019 Links: 2
请再次注意,链接数为 2,表明该文件在某处还有另一个列表。您之所以知道这是与另一个文件相同的文件,是因为它们具有相同的索引节点号;没有其他文件会有这个。不幸的是,这是找到它们的唯一方法(通过索引节点号)。
find
关于如何最好地通过 inode (例如, with )查找文件有一些想法本次问答。
答案2
硬链接文件有多个链接(2
权限标志后面的链接)。您可以使用以下stat
命令轻松提取此信息:
$ stat --printf '%h\n' hardfile.txt
2
有关其他值以及如何打印它们的信息,请参阅stat
( )的联机帮助页。man 1 stat