Как скопировать файлы с расширением, только если этот же файл существует в месте назначения?

Это может звучать странно, но я действительно хочу скопировать только существующих файлов , поэтому эти файлы будут обновлены / переопределены, и любой новый файл не будет добавлен.

Я хочу скопировать файлы с одним расширением. Он хорошо работает с этой строкой сценария:

rsync -avm --include='*.bak' -f 'hide,! */' /Directory-to-be-backed-up/ /media/USB_stick

Но я также хочу, чтобы файл копировался, только если он уже существует в предназначении (переопределяя его).

Например, у меня есть эти 3 файла в /tmp/a:

/tmp/a/1.h
/tmp/a/2.h
/tmp/a/internal/3.h

И это 2 файла в /tmp/b:

/tmp/b/1.h
/tmp/b/internal/3.h

Я хотел бы обновить / переопределить существующие файлы в /tmp/b используют те же, что в /tmp/a, но не копируют какой-либо новый файл (например, /tmp/a/2.h).

Есть ли способ?

0
задан 11 January 2012 в 23:46

1 ответ

Я бы немного переупорядочил вашу команду, сначала убрал бы --include, а вместо этого просто поместил *.bak прямо в исходный путь. Затем вы можете добавить --existing для копирования только существующих файлов.

Один из возможных способов сделать это (не проверено):

rsync -avm --existing /Directory-to-be-backed-up/*.bak /media/USB_stick
0
ответ дан 11 January 2012 в 23:46

Другие вопросы по тегам:

Похожие вопросы: