将符号链接备份到公文包时会发生什么?


3

故事:我最近开始尝试DropBox。经过一番摆弄之后,我发现我可以使用一个应用程序DropBoxFolderSync来将文件夹与DropBox同步,在先前的文件夹位置保留一个称为“符号链接”(类似于编程中的指针)的东西。

听起来不错,我总是可以将真实文件从DropBox中复制回去,所以我在编程项目文件夹中使用了它-总是很好,可以进行异地存储。

但是,也有一个本地备份也总是很好,因此我之前已经将C:\分区上的Projects文件夹拖放到D:\分区上的公文包中。

因此,总结一下:

  • 将Projects文件夹备份到“公文包”。

  • 做了一些工作,决定给DropBox做个尝试。

  • 使用DropBoxFolderSync将Projects文件夹同步到DropBox;留下的符号链接。

  • 然后,我更新了公文包,因为自从上次更新以来,我已经做了一些工作。一些文件被复制了。

文件夹清单:

  • 项目文件夹:“ C:* \ Visual Studio 2010 \ Projects”(包含符号链接)

  • DropBox项目文件夹:“ C:* \ DropBox \ Projects”(包含实际文件)

  • 公文包:D:驱动器上的*“ Backups \ Visual Studio 2010项目”(引用项目文件夹)

现在,我的问题是:公文包会累积符号链接还是实际文件?也就是说,在编程方面(因为这是我所知道的),它将复制指针还是引用的值?

Answers:


1

它将复制文件(参考值)。这是硬链接的默认行为。从技术上讲,这些不是符号链接。

要复制硬链接(如果NTFS指向结点而不是文件,则将其称为结点),您必须显式调用CreateHardLink函数。您可以放心地假定任何不特别了解硬链接的程序将始终复制“参考值”。

顺便说一句,符号链接的不同之处在于它们实际上是一个保存指向目标路径的文件。

编辑

对于正在阅读的书呆子。。。

NTFS中的硬链接和连接点 http://msdn.microsoft.com/zh-cn/library/aa365006(v=VS.85).aspx

在符号链接上执行不同功能的结果 http://msdn.microsoft.com/zh-cn/library/aa365682(v=VS.85).aspx


从技术上讲,NTFS联结不是硬链接。结点始终是指向原始路径的符号指针,几乎就像符号链接一样,但是具有不同的路径解析规则。(此外,最初的问题似乎是在谈论符号性链接,而不是硬链接)
。– grawity

我的意思是,操作系统在复制硬链接和连接点时将以相同的方式对待它们。只有调用显式函数,链接本身才会被复制。否则,可以安全地假定它们被视为目标。
surfasb
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.