名称以单破折号和/或双破折号开头的 Rsync 文件夹

名称以单破折号和/或双破折号开头的 Rsync 文件夹

希望 rsync 包含以单破折号或双破折号开头的文件夹的驱动器,例如:

  • -档案-
  • - 档案 -

我尝试过以下方法:

rsync -azP -e <source drive>/* <destination drive>

...但是,以破折号 (-) 或双破折号 (--) 开头的文件夹不会同步。

如何确保以破折号 (-) 或双破折号 (--) 开头的任何文件夹正确同步?

答案1

您可以按照与大多数工具相同的方式执行此操作:

  • ./您可以通过显式写出或使用目录的绝对路径来编写路径,使其不以破折号开头。

    rsync ...options... /full/path/src ./dst
    
  • 您可以--在路径名操作数之前停止选项解析:

    rsync ...options... -- srcpath dstpath
    

在您的情况下,使用--,以下内容将创建为当前目录中/some/other/path/--Archives-目录的副本:--Archives-

rsync -av -- --Archives- /some/other/path

以下命令仅将 的内容复制--Archives-到目标目录:

rsync -av -- --Archives-/ /some/other/path

重要的是源路径末尾的斜杠。目标路径末尾的斜杠是无关的。

请注意,除非您知道自己想要,否则很少需要在源路径上使用显式通配符避免从最顶层的源路径复制任何隐藏的名称。

除非您需要以特殊方式调用来创建到源或目标的网络连接,-e否则不需要在示例命令中使用。ssh在问题的示例代码中,您似乎在源路径中添加了前缀-e,这可能是一个错误(并且您提到在两个驱动器,这根本不涉及通过网络进行连接)。

另请注意,使用-z(压缩)不太可能加快速度,除非您的网络连接速度非常慢(即,如果您的压缩和解压缩速度比传输速度快得多)。因此,-z在进行本地复制时没有必要使用。事实上,这可能会减慢操作速度。

答案2

相对路径名(文件名)加上前缀./,它将不再以破折号开头

rsync -av ./-items* destination:destPath/

或者去掉通配符*并转移父目录

rsync -av ./ destination:destPath/dir

相关内容