rsync 成功或失败取决于目标目录

rsync succeeds of fails depending on the destination directory

我正在使用空 /home/pantelis 文件夹(目标目录)进行以下两个实验

此命令成功:

rsync -zalP --progress --exclude=.git --exclude=.vscode /Users/pantelis/Workspace/my-work/terragrunt/modules/ my-server:/home/pantelis/my-work/

即在 my-server 上,创建了 my-work 目录并包含 /Users/pantelis/Workspace/my-work/terragrunt/modules/

的内容

在远程机器上,我现在删除 /home/pantelis/my-work 所以 /home/pantelis 又是空的。

我尝试 运行 rsync 命令如下,但现在失败了

▶ rsync -zalP --progress --exclude=.git --exclude=.vscode /Users/pantelis/Workspace/my-work/terragrunt/modules/ my-server:/home/pantelis/my-work/terragrunt/modules/
building file list ...
1114 files to consider
rsync: connection unexpectedly closed (8 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at /System/Volumes/Data/SWE/macOS/BuildRoots/d7e177bcf5/Library/Caches/com.apple.xbs/Sources/rsync/rsync-55/rsync/io.c(453) [sender=2.6.9]

我正在尝试这个,显然我希望远程文件结构与本地文件结构相匹配。

为什么第二次尝试失败了?

是因为(某些内在原因)rsync 不能创建除叶之外的任何其他目录吗? (my-work)?在那种情况下,我已经按照建议 here 尝试了 --relative 选项,但没有成功。

将此添加到您的命令以在我的服务器上创建丢失的目录层次结构:

--rsync-path="mkdir -p /home/pantelis/my-work/terragrunt/modules/ && rsync"