【发布时间】:2012-06-08 07:14:31
【问题描述】:
我们有源“S”文件夹、目标“D”和原始“O”。
D 是对所有文件使用 NTFS 硬链接的 O 的副本。
现在我们需要同步 S 和 D,并且只将更改的文件从 S 复制到 D。
Robocopy.exe 会这样做,但是它会覆盖文件,因此 D 和 O 中的文件都被更改了,但无论如何我们希望 O 中的文件保持不变。
要正确更新硬链接副本,需要删除 D 中的文件(以断开链接),然后创建具有相同名称的文件而不是覆盖。
robocopy 支持吗?也许有一个特殊的参数,或者是否有任何其他免费实用程序(最好是开源)知道如何正确更新文件,如果它是一个硬链接?
【问题讨论】:
-
没有没有可以使文件的一个实例成为“硬链接”,而使另一个成为“原始”。它们都是“一流的”——既不是次要的,也不是操作系统或您的次要的。当说文件夹“仅”包含硬链接时请记住这一点,因为这些是文件它们自己,毫无疑问!
-
复制 D 到 D2,删除 D,将 D2 重命名为 D。以后不要使用硬链接。
-
Mehrdad,谢谢,在发布了一个问题后,我意识到这两个文件(一个在 O 中,一个在 D 中)都是硬链接,因为我需要一个工具来始终按以下方式进行操作:create temp文件,删除原始文件,将 temp 重命名为原始行为。
-
Harry,由于我们要求从 O 复制到 D 的具体要求应该尽可能快,如果文件夹是 ~20Gb 或更多复制操作需要太多时间,这就是我们使用硬链接的原因。同样通过这种方式,我们可以存储多个版本的 O(在 D1、D2、D3、... Dn 中),并且非常节省空间。
-
这一切都很好,但是有一天有人会不小心编辑或覆盖 Dn 中的一个文件并且非常生气,这样做会破坏 O 和 D1 到 D(n-1)。硬链接并不是处理可变文件的好机制。您可能应该使用单实例存储进行调查。
标签: windows ntfs data-synchronization