如何复制文件并创建硬链接,而不是在文件相同时进行复制

如何复制文件并创建硬链接,而不是在文件相同时进行复制

是否有适用于 Windows 的工具可以

  • 将一个目录复制到另一个目录
  • 读取复制的内容
  • 生成 MD5
  • 如果当前文件与之前复制的文件相同,是否在目标目录中创建硬链接而不是写入内容?

答案1

如果您复制内容只是为了随后立即进行硬链接,为什么不立即生成硬链接呢? 链接外壳扩展使得这项特殊的工作变得简单。

如果你有理由需要执行上述特定的操作序列,LSE 的作者还编写了一个名为的命令行工具合并几乎完全按照你的要求去做。

需要记住的一点是,NTFS 不会对硬链接执行“写入时复制”语义。如果修改了文件的内容,所有硬链接版本都会立即“更新”,因为它们本质上都是指向磁盘上同一数据范围的目录条目。此外,许多程序执行“保存到临时文件,删除原始文件,将临时文件重命名为旧名称”的过程,而不是覆盖文件,这将有效地破坏指向数据的其他硬链接,因为它们指向的是旧数据范围。

答案2

您可以使用 FINDDUPE 来执行此操作,您可以找到这里
将其src视为源文件夹和dest目标文件夹,您可以执行以下操作:

xcopy /I /E src dest
finddupe -hardlink -ref src dest

注意:硬链接仅适用于 NTFS

相关内容