如何在 Windows 上找到硬链接?

如何在 Windows 上找到硬链接?

我使用 mklink 在 Windows 7 文件系统上创建了一些硬链接。那是很久以前的事了,我记不清在哪里创建了哪些文件。当我使用资源管理器时,所有文件看起来都一样。当我使用命令行并输入“dir”时,它们看起来都一样。

如何查找硬链接?或者如何确定特定文件是否是硬链接?

答案1

全部文件是硬链接,链接数至少为 1。

这就是文件看起来相同的原因。它们相同。你似乎正在寻找的是包含超过一个链接到文件。除了链接数(以及属性和日期戳方面的一些奇怪行为)之外,几乎没有什么可以区分链接数大于 1 的文件和链接数为 1 的文件。

find使用 Microsoft 的命令检查非常简单适用于 Linux 的 Windows 子系统find . -links +1

ps Windows Subsystem for Linux 以前在 2008 年被称为“基于 UNIX 的应用程序子系统”,适用于 Windows-Server-2008(有关更多信息,请阅读此处https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc772343(v=ws.11)?redirectedfrom=MSDN)。

答案2

在 Windows 7 上(也适用于 Windows 10),使用命令:

fsutil hardlink list MyFileName.txt

它列出了所有指向名为 的文件的硬链接MyFileName.txt

答案3

不幸的是,如果不查看每个文件,操作系统就无法找到所有的硬链接。

对于 Explorer,你可以下载非常方便的链接外壳扩展,它用类似红色快捷方式的箭头覆盖带有硬链接的文件。

通过 Explorer 的上下文菜单创建硬链接、符号链接和连接也变得相当轻松。

奖金闲聊:

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

答案4

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

如果你想测试文件A和是否B是指向相同内容的硬链接,并且你不想安装或运行任何东西,请打开特性文件窗口A并切换例如其只读属性。现在打开特性窗口,B查看文件属性是否A也在此处发生变化。如果是,则答案是肯定的。

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

话虽如此,也可以用文件的时间戳进行同样的测试,但它们不能像只读标志以执行检查。

相关内容