我在 Windows 7 中创建了一个包含一些文本的 docx 文件(initial.docx),然后创建了指向它的硬链接:
mklink /H new.docx initial.docx
我打开 new.docx,可以看到我最初在 initial.docx 中输入的文本。现在我在 new.docx 中输入更多文本。问题来了:我保存了它,此时 initial.docx 在 Windows 资源管理器中隐藏起来。我打开 initial.docx,可以看到它不包含我在 new.docx 中保存的新文本。
如果我在创建 new.docx 后不对其进行修改,而是修改原始文件并保存,则 new.docx 会被隐藏并且不包含修改。
有人知道解决方法吗?
请注意,如果我对文本文件执行相同操作,则不会出现此问题:文件有效链接,并且其中一个文件中的每个更改都可以在另一个文件中看到。
答案1
可能没有办法解决这个问题。我怀疑这是某些程序中保存过程的副产品。
它们不会简单地覆盖现有文件,而是会将文件保存到新的临时文件中,然后稍微重命名,最后删除原始文件。这可以为您提供额外的安全性。如果您的计算机在保存过程中崩溃,原始文件应该仍然存在,并且您可能会将新版本作为临时文件使用,因此理论上您不会丢失任何内容。对于只是覆盖文件的程序,如果在保存过程中发生故障,那么您可能会丢失所有内容。
我怀疑在保存/重命名操作期间您的链接被删除了。我认为您对此无能为力。在文件上明确设置 ACL 时,您会看到相同的行为。
我见过许多程序都使用这种保存过程,不仅仅是 MS Office。