Rsync для копирования только определенных папок
У меня есть каталог с файлами и каталогами. Я хочу сделать rsync копию нескольких папок из этого каталога. Например, скажем, у меня есть это:
/home/user
-- drwxr-xr-x folderA
-- drwxr-xr-x folderB
-- drwxr-xr-x folderC
-- -rw-r--r-- file.1
-- -rw-r--r-- file.2
Я хочу скопировать folderA и folerB с помощью rsync. Я создал файл rsync_folders.txt
+ /folderA/**
+ /folderB/**
Моя проблема в том, что rsync всегда будет копировать файл, если он не соответствует шаблону exclude. Но если я добавлю
- /**
ничего не копируется, потому что сначала rsync сопоставляет шаблоны исключений.
Любые идеи?
Примечание. Я не могу перечислить все папки и файлы, которые я хочу исключить. Время от времени оно будет меняться.
Ответы
Ответ 1
Либо используйте rsync -av src1 src2 src3 ... dst
, либо поместите все папки, которые вы хотите в rsync, в текстовый файл (каждая папка в отдельной строке) и используйте rsync -arv --files-from=sources.txt dst
.
Обратите внимание, что по умолчанию -a
подразумевает --recursive
, но не тогда, когда используется --files-from
, поэтому в этом случае -r
должно быть явно указано.