rsync:仅在一个方向上传输文件

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/)?

答案1

您误解了 rsync。此命令:

rsync -avv left/ right/ 

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

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

答案2

它应该是rsync [OPTION...] SRC... [DEST]这样的,所以它确实在那个方向上起作用(除非你切换目标和源)。

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

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

相关内容