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

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

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

听起来不错,而且我总是可以将真实文件从 DropBox 中复制回来,因此我在编程项目文件夹中使用了它——拥有异地存储总是好的。

不过,拥有本地备份总是好的,因此我之前将 C:\ 分区上的 Projects 文件夹放到了 D:\ 分区上的 Briefcase 中。

总结一下:

  • 项目文件夹已备份至公文包。

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

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

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

文件夹列表:

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

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

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

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

答案1

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

要复制硬链接(如果它们指向文件夹而不是文件,则 NTFS 将它们称为连接点),您必须明确调用 CreateHardLink 函数。您可以放心地假设任何不明确了解硬链接的程序都将始终复制“引用值”。

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

编辑

对于正在读书的书呆子来说……

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

对符号链接执行不同函数的结果 http://msdn.microsoft.com/en-us/library/aa365682(v=VS.85).aspx

相关内容