如何复制相对于复制根目录维护符号链接和连接的文件夹?

Jos*_*ley 5 windows symbolic-link ntfs-junction windows-10

这可能有点极端,但我很想知道是否有一种简单的方法可以实现这一点。

假设我进行了以下设置(其中后两个是第一个的符号链接):

  • D:\工作\CommonStuff
  • D:\Work\Project1\Stuff -> D:\Work\CommonStuff
  • D:\Work\Project2\Stuff -> D:\Work\CommonStuff

现在假设我想备份D:\Workto E:\Work

我希望相对地维护这些链接,从而导致:

  • E:\工作\CommonStuff
  • E:\Work\Project1\Stuff -> D:\Work\CommonStuff
  • E:\Work\Project2\Stuff -> D:\Work\CommonStuff

我当然明白,如果我有:

  • D:\工作\CommonStuff
  • D:\Work\Project1\Stuff -> D:\Work\CommonStuff
  • D:\Work\Project2\Stuff -> D:\Work\CommonStuff
  • D:\Work\Project3\Stuff -> D:\OtherCommonStuff

那么事情就会变得复杂,因为如果我只是复制,D:\Work那么复制命令会对最后一个选项做什么?在这种情况下,我想直接复制文件,丢失符号链接。

有什么方法 robocopy 或 xcopy 或 [anyother]copy 可以在 Windows 10 上实现此目的吗?

lia*_*amZ 2

看一下:Ln 命令行硬链接

这个工具有点像NTFS瑞士军刀,可以做很多事情,比如创建SmartCopies,它保留内部和外部Hardlink/Junction/SymbolicLink结构,进行基于硬链接的增量备份以及许多其他无法找到的事情任何地方。

我认为你所要求的可以通过以下方式实现:

ln.exe --unroll --copy --backup D:\Work E:\Work
Run Code Online (Sandbox Code Playgroud)

--Unroll 遵循外部连接/符号链接目录,并在目标位置的层次结构内重建外部连接/符号链接目录的内容。展开也适用于外部符号链接文件,这意味着展开会导致外部符号链接文件的目标被复制到目标位置。

--copy:智能复制基本上创建从源位置到目标的目录结构的副本,但它保留源的内部硬链接结构和内部连接/符号链接关系,并重新创建此内部硬链接结构和内部连接/目标位置的符号链接关系。

--backup:使用备份模式 ACL 又名访问控制列表,其中包含文件、文件夹、连接点或符号链接的安全性,并且还会复制加密文件。

ln.exe 因此复制

  • 文件和文件夹上的替代流
  • 文件和文件夹上的 EA 记录(很少使用)
  • 重新解析信息
  • 文件属性
  • 时间戳:创建时间、上次访问时间、上次写入时间
  • 稀疏文件和替代稀疏流
  • 加密文件
  • ACL