RSync - исключение конкретного подкаталога и его дочерних элементов, где подкаталог существует на разных уровнях

G'Day,

Я использую rsync для рекурсивной синхронизации дерева удаленной папки, которое выглядит примерно так:

/folderA/a1/cache
/folderA/a1/cache/A1
/folderA/a1/cache/A2
/folderA/a1/somefolder
/folderA/a1/someotherfolder
/folderA/a2/somefolder/cache
/folderB/cache/
/folderB/b1/somefolder/cache
/folderB/b1/somefolder/yetanotherfolder/cache
/folderB/b1/somefolder/yetanotherfolder/cache/B1
/folderB/b1/somefolder/yetanotherfolder/cache/B2

Я не знаю, как будет выглядеть дерево папок, и со временем оно изменится. Поэтому я хочу, чтобы это было рекурсивно rsync выше, но exclude папка «cache» и любые вспомогательные папки, которые она содержит, чтобы я в конечном итоге завершил синхронизацию:

/folderA/a1
/folderA/a1/somefolder
/folderA/a1/someotherfolder
/folderA/a2/somefolder
/folderB/
/folderB/b1/somefolder
/folderB/b1/somefolder/yetanotherfolder/

Любые предложения?

28 голосов | спросил TheEdge 13 Jam1000000amThu, 13 Jan 2011 11:57:41 +030011 2011, 11:57:41

1 ответ


41

Вам нужен флаг --exclude. Например, локальный rsync:

rsync -a --exclude cache/ src_folder/ target_folder/

Это действительно так просто - правило exclude будет соответствовать каталогу с именем «cache» в любом месте вашего дерева.

Для получения дополнительной информации найдите раздел «--exclude» и «FILTER RULES» на странице руководства rsync:

http://www.samba.org/ftp/rsync/rsync.html

ответил Jander 13 Jpm1000000pmThu, 13 Jan 2011 12:25:07 +030011 2011, 12:25:07

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132