rsync:通过 ssh 隧道在服务器上创建目标目录?

rsync: create target directory on server over ssh tunnel?

使用 rsync 时,可以使用 --rsync-path 技巧在服务器上创建目标目录,如下所示:

rsync -av -e "ssh" --rsync-path "mkdir -p /home/user/new/new && rsync" ./file.txt  user@10.0.2.60:/home/user/new/new

然而,这在使用 ssh 隧道时似乎不起作用。以下命令只是挂起:

rsync -av -e "ssh -A user@10.0.2.61 ssh" --rsync-path "mkdir -p /home/user/new/new && rsync" ./file.txt  user@10.0.2.60:/home/user

如果我删除 --rsync-path 参数并在目标设备上手动创建目录,我已验证最后一个命令有效。但是如何让 rsync 在使用 ssh 隧道时创建丢失的目录?

设法解决了。 --rsync-path里面的命令一定要用另一层引号包起来:

rsync -av -e "ssh -A user@10.0.2.61 ssh" --rsync-path "'mkdir -p /home/user/new/new && rsync'" ./file.txt  user@10.0.2.60:/home/user