rsync для копирования только определенных папок - PullRequest
11 голосов
/ 15 июля 2009

У меня есть каталог с файлами и каталогами. Я хочу сделать 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

Я хочу скопировать папку A и folerB с помощью rsync. Я создал файл rsync_folders.txt

+ /folderA/**
+ /folderB/**

Моя проблема в том, что rsync всегда будет копировать файл, если он не соответствует шаблону исключения. Но если я добавлю

- /**

ничего не копируется, потому что rsync сначала сопоставляется с шаблонами исключения.

Есть идеи?

Примечание: я не могу перечислить все папки и файлы, которые я хочу исключить. Время от времени будет меняться.

1 Ответ

14 голосов
/ 27 июля 2009

Либо используйте rsync -av src1 src2 src3 ... dst, либо поместите все папки, которые хотите rsync, в текстовый файл (каждая папка в отдельной строке) и используйте rsync -arv --files-from=sources.txt dst.
Обратите внимание, что по умолчанию -a подразумевает --recursive, но не при использовании --files-from, поэтому в этом случае -r должно быть указано явно.

...