按字母顺序排列的第一个文件未使用 rsync 复制

按字母顺序排列的第一个文件未使用 rsync 复制

我使用以下命令将一个目录的内容完整、递归地复制到另一个目录中:

rsync -avzhe /path1/to1/dir1/* /path2/to2/dir2/

它按照我的预期工作,除了第一个文件(按字母顺序排列),无论是目录还是文件,都不会被复制。所有其他文件都会被复制。为什么 ?

如果重要的话,我的操作系统是 MacOS 10.14.6。

答案1

-e选项需要一个参数,因此它采用第一个文件名。我不确定你为什么想要,-e因为它设置了用于连接到遥控器的命令,但你没有使用遥控器。只需删除-e.

答案2

/path1/to1/dir1要制作名为 的目录的完整副本/path2/to2/dir2,请使用

rsync -av /path2/to1/dir1/ /path2/to2/dir2

-z对本地副本使用压缩 ( ) 是没有意义的。该-e选项指定用于建立网络连接的命令(这就是为什么您的命令无法复制第一个文件;rsync将其用作该选项的选项参数-e),因此在这种情况下也应该将其删除。

另外,不要*在源路径的末尾使用,因为这通常不会匹配任何隐藏名称。通配所有名称dir1也可能会导致列表太长而导致命令根本无法执行。

只需确保源路径以斜杠结尾即可。目标路径末尾的斜杠没有任何区别。从源路径中删除斜杠将复制dir1dir2.源路径末尾的斜杠会dir2生成dir1.

除此之外,您可能需要使用它-H来确保在目标处正确建立硬链接,并且--sparse您知道您正在复制可能稀疏的文件(例如预分配的磁盘映像)。

--delete也用于删除来自不属于源文件层次结构一部分的目标的条目。请谨慎使用。您可能需要先使用-n( --dry-run) 进行测试运行。

相关内容