如何复制文件夹并保持相对于复制根的符号链接和连接?

如何复制文件夹并保持相对于复制根的符号链接和连接?

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

假设我有以下设置(后两个是第一个的符号链接):

  • 目录:\Work\CommonStuff
  • D:\工作\项目1\东西->D:\工作\CommonStuff
  • D:\工作\项目2\东西->D:\工作\CommonStuff

现在假设我想将 备份D:\WorkE:\Work

我希望相对地维持链接,从而导致:

  • 电子邮件地址:
  • E:\工作\项目1\东西->D:\工作\CommonStuff
  • E:\工作\项目2\东西->D:\工作\CommonStuff

当然,我明白,如果我有:

  • 目录:\Work\CommonStuff
  • D:\工作\项目1\东西->D:\工作\CommonStuff
  • D:\工作\项目2\东西->D:\工作\CommonStuff
  • D:\工作\项目3\东西->D:\OtherCommonStuff

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

robocopy 或 xcopy 或 [anyother]copy 有什么方法可以在 Windows 10 上实现这一点吗?

答案1

看一眼:Ln 命令行硬链接

这个工具就像是 NTFS 的瑞士军刀,可以做很多事情,比如创建 SmartCopies,它可以保留内外 Hardlink/Junction/SymbolicLink 结构,执行基于硬链接的增量备份,以及很多其他在其他地方找不到的事情。

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

ln.exe --unroll --copy --backup D:\Work E:\Work

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

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

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

ln.exe 复制

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

相关内容