我使用以下命令将一个目录的内容完整、递归地复制到另一个目录中:
rsync -avzhe /path1/to1/dir1/* /path2/to2/dir2/
它按照我的预期工作,除了第一个文件(按字母顺序排列),无论是目录还是文件,都不会被复制。所有其他文件都会被复制。为什么 ?
如果重要的话,我的操作系统是 MacOS 10.14.6。
/path1/to1/dir1
要制作名为 的目录的完整副本/path2/to2/dir2
,请使用
rsync -av /path2/to1/dir1/ /path2/to2/dir2
Run Code Online (Sandbox Code Playgroud)
-z
对本地副本使用压缩 ( ) 是没有意义的。该-e
选项指定用于建立网络连接的命令(这就是您的命令在复制第一个文件时失败的原因;rsync
将其用作该选项的选项参数-e
),因此在这种情况下也应该将其删除。
另外,不要*
在源路径的末尾使用,因为这通常不会匹配任何隐藏名称。通配所有名称dir1
也可能会导致列表太长而导致命令根本无法执行。
只需确保源路径以斜杠结尾即可。目标路径末尾的斜杠没有任何区别。dir1
从源路径中删除斜杠将复制到dir2
. 源路径末尾的斜杠会dir2
生成dir1
.
除此之外,您可能需要使用它-H
来确保在目标处正确建立硬链接,并且--sparse
您知道您正在复制可能稀疏的文件(例如预分配的磁盘映像)。
--delete
还用于从目标中删除不属于源文件层次结构的条目。请谨慎使用。您可能需要先使用-n
( --dry-run
) 进行测试运行。
归档时间: |
|
查看次数: |
565 次 |
最近记录: |