rsync : 只向一个方向传输文件

art*_*lla 26 linux synchronization rsync

是否可以使用 rsync 仅向一个方向复制文件?

例如,假设我们有:

left/a.txt

right/a.txt

其中文件最初是相同的。

如果然后修改right/a.txt,则:

rsync -avv left/ right/

将复制right/a.txtleft/a.txt.

是否有可能限制rsync将仅复制left/right/(即防止它从复制right/left/)?

jdw*_*jdw 41

你误解了 rsync。这个命令:

rsync -avv left/ right/ 
Run Code Online (Sandbox Code Playgroud)

不会从右到左同步任何内容。正如@atbg 所说,它只会从左到右同步。Rsync 不是双向同步器。它将目标与源同步。

参考手册页:http : //linux.die.net/man/1/rsync


小智 4

应该如此,rsync [OPTION...] SRC... [DEST]它确实朝这个方向工作(除非您切换 dest 和 src)。

left/a.txt应复制到right/a.txt

$ echo 'left' > left/a.txt
$ echo 'right' > right/a.txt
$ cat left/a.txt && cat right/a.txt
left
right
$ rsync -avv left/ right/
sending incremental file list
delta-transmission disabled for local transfer or --whole-file
a.txt
total: matches=0  hash_hits=0  false_alarms=0 data=5

sent 95 bytes  received 34 bytes  258.00 bytes/sec
total size is 5  speedup is 0.04
$ cat left/a.txt && cat right/a.txt
left
left
Run Code Online (Sandbox Code Playgroud)

如果您不希望 rsync 包含某些特定文件,请查看--exclude=PATTERN--exclude-from=FILE

  • 请记住,当有疑问时,“--dry-run”选项将向您显示将被传输但实际上并未执行传输的文件列表。我将其添加到每个“rsync”的开头只是作为预防措施,即使我确信该命令是正确的。 (4认同)