有没有办法将对 NTFS 硬链接文件的更改写入新文件?

Jim*_*Jim 10 ntfs hardlink

单个 NTFS 文件可以“硬链接”到多个目录项;所有目录条目(例如A、B、C)都指向相同的数据。如果对这个单个文件(例如A)进行更改,则所有条目(A、B、C)现在都引用相同的更改数据。但是如果您不希望 B 的数据改变怎么办?有没有办法让Windows将更改的A数据写入新文件,而让B引用相同的未更改数据?例如,改变的A数据可以自动写入新文件;或者可以警告用户并让其选择是否将其他目录条目(B、C 等)链接到新数据。我确实看到,如果将 B 设置为只读,则无法写入 A,并且必须将 A 的更改保存为新名称。但我更喜欢将更改自动写入新文件,或者提示写入旧文件。

use*_*686 21

这将不再是“硬链接”;它将被称为“引用链接”或“写入时复制链接”。

NTFS 不支持写时复制链接,因为它一般不支持文件之间的共享范围(而硬链接不仅共享数据,还共享仅附加多个名称的整个文件)。


同时,ReFS确实通过块克隆支持CoW链接;微软已经发布了一个用于创建它们的工具。(Windows 仅支持数据卷的 ReFS,不支持系统卷,据我所知,您需要借用 Windows Server 才能创建 ReFS 卷。)

Btrfs 和 XFS 在 Linux 上也支持引用链接。Windows 上的 Btrfs 使用实验性WinBtrfs也支持它们,但我听说 WinBtrfs 不太可靠。