Я хочу скопировать и перезаписать только файлы, которые существуют в месте назначения. Иначе, исключая 'одинокие файлы', которые существуют в источнике xor место назначения.
Необходимо смочь достигнуть этого с rsync
, использование --existing
флаг:
--existing skip creating new files on receiver
Напр. данный
$ tree -a A/ B/
A/
├── bar
├── baz
├── foo
└── .hidden
B/
├── bam
├── baz
├── foo
└── .hidden
0 каталогов, 8 файлов
где baz
, foo
и .hidden
распространены, но bar
существует только на источнике и bam
только на цели, затем (примечание: я включал подробное -v
и -n
флаг "пробного прогона" в целях иллюстрации):
$ rsync -avn --existing A/ B/
sending incremental file list
.hidden
baz
foo
sent 152 bytes received 25 bytes 354.00 bytes/sec
total size is 0 speedup is 0.00 (DRY RUN)
только обновления baz
, foo
и .hidden
. (Файлы, которые существуют только на месте назначения, проигнорированы по умолчанию.)
Можно проверить это без --existing
, bar
был бы также скопирован:
$ rsync -avn A/ B/
sending incremental file list
.hidden
bar
baz
foo
sent 155 bytes received 28 bytes 366.00 bytes/sec
total size is 0 speedup is 0.00 (DRY RUN)
Проверьте это на stackoverflow. Существует несколько решений. Я не судил их, но я думаю, что они должны работать и решить Вашу проблему:
Надежда это помогает Вам.;)