是否可以使用 rsync 仅在一个方向上复制文件?
例如,假设我们有:
left/a.txt
right/a.txt
其中的文件最初是相同的。
如果随后修改right/a.txt
,则:
rsync -avv left/ right/
将复制right/a.txt
到left/a.txt
。
是否可以限制 rsync 仅从 复制left/
到right/
(即防止它从 复制right/
到left/
)?
答案1
您误解了 rsync。此命令:
rsync -avv left/ right/
不会从右到左同步任何内容。正如@atbg 所说,它只会从左到右同步。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
。