Windows 7 Pro 中的硬链接中断

Windows 7 Pro 中的硬链接中断

我想使用硬链接来避免必须在其基本文件夹和用于个人开发的小型 git repo 之间同步/复制一些源文件。

C:\PathLink>mklink /h test  C:\PathTarget\file.f90
Permanent link created for test <<===>> C:\PathTarget\file.f90

C:\PathLink>..\FindLinks\FindLinks.exe test

FindLinks v1.0 - Locate file hard links
Copyright (C) 2011 Mark Russinovich
Sysinternals - www.sysinternals.com

C:\PathLink\test
        Index:  0x0003F29B
        Links:  1

Linking file:
C:\PathTarget\file.f90

那里一切看起来都很好,但是当我使用“目标”访问路径修改并保存文件时(我只是fgh在 Visual Studio 中将附加内容添加到一行),我发现链接“丢失”了:

C:\PathLink>..\FindLinks\FindLinks.exe test

FindLinks v1.0 - Locate file hard links
Copyright (C) 2011 Mark Russinovich
Sysinternals - www.sysinternals.com

C:\PathLink\test
        Index:  0x0003F29B
        Links:  0

之后,我可以分别加载这两个文件(test和),反映修改,并且是未保存的文件。filefiletest

有人知道为什么会发生这种情况吗? 有没有办法避免这种情况?

猜测我可以在 PathTarget 文件夹中初始化我的 repo,然后创建一个适配的.gitignore。Target 文件夹中已经有很多文件,我只想修改其中的几个。此外,我还想添加新的源文件,如果我有自己的文件夹,与 Target 文件夹分开,我会发现它不那么混乱。硬链接看起来对我来说是最好的,我不明白为什么它在这里失败了。

答案1

显然,您用来修改文件的程序实际上会删除它(破坏硬链接),然后重新创建它,并将原始数据保留在您硬链接到它的文件中。

如果您希望即使目标被删除,文件仍继续指向不同的路径/文件名,则可以使用符号链接。只需mklink在管理命令提示符中使用,无需使用/h开关。

相关内容