rsync 只同步文件而不在目标上创建文件夹

Vin*_*ent 6 rsync

rsync 是否可以不在目标上创建目录?

想象一下我有那个来源:

a/
a/x.txt
b/
b/y.txt
Run Code Online (Sandbox Code Playgroud)

而且我有这个目的地:

a/
a/z.txt
Run Code Online (Sandbox Code Playgroud)

想要的结果rsync source destination

a/
a/x.txt
a/z.txt
Run Code Online (Sandbox Code Playgroud)

当然,我的真实情况涉及数千个文件/文件夹结构,我不想要涉及显式同步文件夹列表的解决方案,我可以这样做。我正在寻找一种干净的方法来防止在目标上创建任何文件夹。通过排除或过滤......这甚至可能是 rsync 之外的东西,比如如果 rsync 不能做到这一点,则具有权限的黑客攻击......


有关信息,这真的很容易出现这种情况,就我而言,我有:

  • 一个有 2 个磁盘的服务器,比方说A& B。和一个本地驱动器C
  • 我通常rsync用来同步(和合并)远程A&B到本地C
  • 然后有时我只想将一些C文件同步回AB。(只是新文件......不是目标上不存在的文件夹)

小智 0

也许进行正常的 rsync,然后在第二步中删除所有新创建的文件夹......听起来很危险。

为了提高此操作的安全性,您可以使用目标系统上的另一用户:

rsync $src $specialuser@server:$destination
Run Code Online (Sandbox Code Playgroud)

删除该用户远程创建的文件夹:

ssh $normalUser@destination "find $destination -type d -user $specialuser -exec rm -r {} \;"
Run Code Online (Sandbox Code Playgroud)

然后将权限设置回正常:

ssh $normalUser@destination "chown -R $defaultUser:$defaultGroup $destination"
Run Code Online (Sandbox Code Playgroud)

该死,这看起来很脏......这需要一些重大改进:D