如何在Windows上找到硬链接?


33

我已经使用mklink在Windows 7文件系统上创建了一些硬链接。那是一段时间前的事,我不记得确切的位置或文件。当我使用资源管理器时,所有文件看起来都一样。当我使用命令行并键入“ dir”时,它们看起来都一样。

我如何找到硬链接?或如何确定特定文件是否为硬链接?

Answers:


33

所有文件都是硬链接,链接数至少为1。

这就是为什么文件看起来相同的原因。他们一样的。您似乎要查找的是文件中有多个链接的文件。几乎没有什么可以区分链接数大于1的文件和链接数为1的文件……链接数(以及关于属性和日期戳的奇怪行为)。

是死便于检查与find那就是在微软的命令SFUA实用工具,在该运行子系统基于UNIX的应用程序

找 。-链接+1


9
就像一个注释,cygwin / bin / find也可以。谢谢!
arcyqwerty

6
为了清楚find起见,此处解决方案中引用的“ Microsoft ”不是默认安装的Windows7。您必须下载并安装新的Microsoft find。然后,您可以使用该find实用程序。或安装Cygwin的find命令,例如@arcyqwerty(可能会更好地长期支持)。
Trevor Boyd Smith,

2
也可以使用内置的fsutil hardlink list filename。(请参阅Sergey的答案
Svish

28

在Windows 7上,使用命令:

fsutil hardlink list MyFileName.txt

它列出了所有带有name的文件的硬链接MyFileName.txt


请注意,您需要具有管理员身份才能运行fsutil。
Alastair Maw

2
@AlastairMaw至少在Windows 10上,您无需成为管理员即可运行该特定命令。还是在没有UAC的情况下成为管理员有效?(即只是没有实际海拔高度的人群)
Paul Stelian

9

不幸的是,操作系统无法在不查看每个文件的情况下找到所有硬链接。

对于资源管理器,您可以下载非常方便的Link Shell扩展程序,该扩展程序用带有红色快捷方式的箭头覆盖带有硬链接的文件。

这也使得通过Explorer的上下文菜单创建硬链接,符号链接和联结变得毫不费力。

额外的chat不休:

从技术上讲,所有文件都是硬链接。因此,您实际上是在寻找具有多个硬链接的文件。


1
其实是。请参阅Sergey的答案
Svish

1
谢尔盖的答案适用于问题的第二部分,但不适用于第一部分。
surfasb

3

使用finddupe

finddupe -listlink c:\photos

-listlink将finddupe置于硬链接查找模式。在这种模式下,finddupe将列出哪些文件组被硬链接在一起。找到的文件的所有硬链接实例将一起显示。但是,finddupe只能找到搜索路径内的硬链接文件实例。
Shayan

3

 一次性检查的简单方法:文件属性是否一起更改?

如果要测试文件A和是否为B相同内容的硬链接,并且不想安装或运行任何文件,请打开文件的“ 属性”窗口,A然后切换例如其“ 只读”属性。现在打开文件的“ 属性”窗口,B以查看是否也更改了文件的属性A。如果是,那么答案是肯定的。

为什么这样有效?因为相关的硬链接共享相同的文件属性和时间戳集。

话虽如此,但是可以使用文件的时间戳进行相同的测试,但是为了执行检查,它们不能像只读标志一样容易地更改。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.