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

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

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

答案1

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

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


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

Btrfs 和 XFS 在 Linux 上也支持 Reflink。Windows 上的 Btrfs 也使用实验性的文件系统,但我听说 WinBtrfs 不太可靠的报告。

相关内容