Как объединить включения и исключения с помощью RSYNC?

#rsync

#rsync

Вопрос:

Я хочу синхронизировать все в /Volumes/B/, за исключением каталогов кэша, которые я хочу исключить глобально. Кроме того, я не хочу синхронизировать какой-либо другой / Volume/

У меня есть следующий файл исключения:

   /Volumes/B/***
- Cache/
- /Volumes/*
  

Кажется, что первая и 3-я строки работают правильно, за исключением того, что rsync также собирает все каталоги кэша в /Volumes/B/ … ( /Volumes/B/***/Cache/ )

Чего мне не хватает?

Ответ №1:

rsync считывает файл исключения сверху вниз при обходе каталогов.
Когда он посещал каталоги кешей, rsync действовал по первому шаблону сопоставления.
Первым шаблоном сопоставления был » / Volumes/B/*«, поэтому кэш был включен.

Правило таково: при наличии определенных подкаталогов ставьте их первыми.

Вот простое пошаговое объяснение.