web-dev-qa-db-ja.com

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/へのコピーを禁止します)?

22
artella

あなたはrsyncを誤解しています。このコマンド:

rsync -avv left/ right/ 

右から左に何も同期しません。 @atbgが言うように、左から右にのみ同期します。 Rsyncは双方向同期ではありません。 destをソースと同期します。

参考のためのマニュアルページ: http://linux.die.net/man/1/rsync

34
jdw

rsync [OPTION...] SRC... [DEST]である必要があるため、その方向で機能します(destとsrcを切り替えない限り)。

left/a.txtright/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を確認してください。

4
agtb