rsync 维护文件夹结构给定点

deu*_*x12 4 rsync

我正在尝试为我的远程服务器开发一个文件更新程序。所以每次我在我的工作站上修改一些代码文件时,我都会运行rsync,它会修改远程服务器上的代码文件。

所以想象一下,如果我修改文件,/home/myuser/workspaces/project/folder/file.txt我想将它同步到user@remote.server:/work/folder/file.txt. 如您所见,服务器维护文件夹结构,尽管它跳过了不相关的部分/home/myuser/workspaces/project/

如果我从/home/myuser/workspaces/project/它执行 rsync很容易解决,因为我只需要添加-R选项:

$ cd /home/myuser/workspaces/project/
$ rsync -aR folder/file.txt user@remote.server:/work
Run Code Online (Sandbox Code Playgroud)

这可以解决问题。问题是我不知道命令将从哪里执行,所以我必须添加整个 path /home/.../file.txt,并且使用显示的命令会将所有内容保存到:user@remote.server:/work/home/myuser/workspaces/project/folder/file.txt

我想要实施的有什么解决方案吗?

顺便说一句,在的那一刻rsync,它可能是可能的/work/,在远程主机上,是一个空文件夹。

谢谢!

deu*_*x12 9

只是为了将来,我找到了最快的解决方案,它涉及-R参数并/./在要开始创建的文件夹之前添加一个。

例如:

 $ rsync -aR /home/myuser/workspaces/project/./folder/file.txt user@remote.server:/work
Run Code Online (Sandbox Code Playgroud)

/work/folder/file.txt在远程服务器中创建文件夹。

只是留下这个答案供将来使用和其他人看到,因为在其他网站上很难找到它。