Структура дерева каталогов rsync с ограниченной глубиной и исключение определенных папок

Я хочу rysnc мою структуру каталогов и подпапок без их файлов, но с максимальной глубиной 3 (/ folder1 / folder2 / folder3) и исключить определенные папки (например, кеш /)

Я пробовал эту команду:

$ rsync -azv --include=*/ --exclude=* --exclude=cache/ --exclude=/*/*/*/ source/ destination/ 

но он не работает … он копирует все папки и подпапки; он не учитывает максимальную глубину и не исключает папку кеша

Нужно ли использовать другой параметр для ограничения максимальной глубины rsyc; что не так с моими существующими параметрами?

ps в последний раз, когда я задал этот вопрос, он был помечен как дубликат фильтра Rsync: копирование только одного шаблона

Это не так, как это не касается максимальной глубины и не касается только древовидной структуры каталога rsync. спасибо

  • как rsync определенный каталог и файлы - проблема
  • mv с функциональностью rsync
  • rsync не перезаписывает новые файлы
  • Скопируйте и получите файлы с одной машины, которая связана через ssh с другим
  • Запуск rsync в качестве демона для локальной передачи
  • Rsync ssh include & exclude
  • Альтернатива rsync -delete для перемещения файлов в другой каталог вместо удаления
  • Какова работа демона rsync?
  • 2 Solutions collect form web for “Структура дерева каталогов rsync с ограниченной глубиной и исключение определенных папок”

    Вы должны исключить многоуровневый шаблон, прежде чем включать */ поскольку последний означает «включить все каталоги», переопределяя последующее исключение. Вам также необходимо добавить дополнительный уровень как */ указывает каталог и /*/*/*/ следовательно, означает «исключить три или более уровней.

    Команда становится:

     rsync -azv --exclude='/*/*/*/*/' --include='*/' --exclude='*' --exclude=cache/ source/ destination/ 

    (поскольку Wildcard уже прокомментировал, вы всегда должны цитировать или пропускать метасимволы оболочки.)

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

     rsync -avz /source/ /destination --exclude "/**/**/**/*" --exclude=cache 

    Это также исключает каталог, называемый кешем, в любом месте исходного пути.

    Interesting Posts

    две команды по каналам, каждый из которых должен читать пароль от stdin

    Каков самый простой способ создания двоичного RPM из проверки исходного кода с помощью файла .spec

    Перенаправить все ARP-трафик с eth0 на eth1

    Загрузить файл с фактическим именем wget

    Разрешить процессу без полномочий root доступ ко всем домашним каталогам без ущерба для безопасности?

    rsync не перезаписывает новые файлы

    Проблема с компиляцией драйвера: «Нет правила для создания цели»

    Как открытые файлы ведут себя в системах Linux?

    Gnome shell – alt-tab назначает текущее рабочее пространство

    Как пользователь может редактировать файл, даже когда бит записи отключен в файле

    Определение много переменных переменной UNIX на одной строке

    Установка незначительных обновлений программного обеспечения

    Установите Ctrl + Shift как префикс в tmux

    Перечислите использование ЦП для каждого экрана

    Невозможно использовать xpra: «Авторизация не распознана»

    Linux и Unix - лучшая ОС в мире.