如何列出 Windows 中目录中的硬链接文件

如何列出 Windows 中目录中的硬链接文件

我正在尝试使用备份和新版本的备份,并且想检查目录中列出的文件是否已经是某个文件的硬链接别名,或者它们是否是该内容的最后链接。

目的是进入一个目录,然后询问哪些文件是唯一的硬链接,哪些文件不是唯一的硬链接,而不必单独询问每一个文件。

要单独询问每个人,我可以使用

fsutil hardlink list

但我必须一个一个地去做。

关于如何做到这一点有什么想法吗?

答案1

我编写了一个 cmd 脚本来解决该问题。

大多数帮助都在评论中
如果你仍然需要帮助,请在gihub 仓库

https://raw.githubusercontent.com/brunoais/cmd-dir-hardlinks/master/listHardLinks.bat

答案2

您可以使用查找重复项列出目录中的所有文件以及硬链接数。但显然它与文件名中的非 ASCII 字符不兼容,并且可以找到一个端口这里

查找单个文件:

finddupe.exe -v -listlink *.* | find /I "Hardlinked (1 links) node="

或具有多个硬链接的文件:

finddupe.exe -v -listlink *.* | find /V /I "Hardlinked (1 links) node="


过去几年我曾多次寻找这样的解决方案,但从未偶然发现您的问题。因此:

如何列出/显示/显示目录中所有文件的硬链接数量/计数?

答案3

要具体回答主题行,您可以使用PowerShell选择对象如下:

PS> dir | select Name, LinkType, Target

select别名在哪里Select-Object

输出:

Name                LinkType     Target
----                --------     ------
hardlinked_file.txt HardLink
regular_file.txt
symlinked_file.txt  SymbolicLink c:\_t\test.txt

注意:Windows 中的硬链接没有“a”的概念,Target因为它们只是指向同一对象的文件系统指针,没有实例被视为父对象。来自 *Nix,我发现这是一个不幸的设计决定,但我想它可能有我现在无法理解的优势。

相关内容