Не работает каталог rsync exclude

Я запускаю Fedora 17 64-bit, а rsync --exclude=/home/ben/<dir> работает не так, как ожидалось.

Я пытаюсь rsync мой домашний каталог на флэш-накопитель, но я хочу исключить, конечно, каталоги, в которых хранятся файлы кеша и файлы сборки. Это команда, которую я использую:

 rsync --exclude=/home/ben/build/ --exclude=/home/ben/.ccache -arv /home/ben home-ben/ 

Однако содержимое из ~/build и ~/.ccache копируется rsync . Что я делаю не так?

  • rsync: Почему -archive не подразумевает --рекурсивный, когда используется -files-from = FILE?
  • rsync не использует -files-from option?
  • rsync-подобный инструмент, поддерживающий сжатие и поддерживающий hardlinks?
  • cron rsnapshot - еженедельно до ежемесячного
  • Что означает все эти дополнительные данные от rsync?
  • Могу ли я изменить список исключаемых файлов при запуске rsync в соответствии с заданием cron
  • rsync самая последняя папка
  • @ERROR: chdir не удалось, но каталог существует
  • 3 Solutions collect form web for “Не работает каталог rsync exclude”

    Глобальные правила фильтра rsync начинающиеся с ведущего / , привязаны к корню передачи. Цитата из раздела «INCLUDE / EXCLUDE PATTERN RULES» на странице руководства:

    если шаблон начинается с /, то он привязан к определенному месту в иерархии файлов, в противном случае он сопоставляется с концом пути. Это похоже на ведущее ^ в регулярных выражениях. Таким образом, «/ foo» будет соответствовать имени «foo» в «корневом каталоге передачи» (для глобального правила) или в каталоге файла слияния (для правила для каждого каталога).

    В вашей команде ( rsync ... -arv /home/ben home-ben/ ) файл /home/ben/foo будет перенесен в home-ben/ben/foo . Корень передачи – home-ben а правильный путь фильтра – /ben/foo . Таким образом,

    • для соответствия /home/ben/.ccache вам нужен путь фильтра /ben/.ccache
    • для соответствия /home/ben/build/ вам нужен путь фильтра /ben/build/

    Более подробное объяснение можно найти в разделе «ANCHORING INCLUDE / EXCLUDE PATTERNS» страницы руководства rsync(1) .


    Обратите внимание, что просто оставить лидирующий / не обязательно то, что вы хотите. Повторное цитирование с той же страницы man-страницы:

    Неквалифицированное «foo» будет соответствовать имени «foo» в любом месте дерева, потому что алгоритм применяется рекурсивно из верхнего положения; он ведет себя так, как будто каждый компонент пути получает поворот в конце имени файла. Даже unanchored «sub / foo» будет соответствовать в любой точке иерархии, где «foo» был найден в каталоге с именем «sub». См. Раздел «АНКЕРЫ ВКЛЮЧЕНИЯ / ИСКЛЮЧЕНИЯ ПАТЕНТОВ» для полного обсуждения того, как указать шаблон, который соответствует корню передачи.

    Таким образом, шаблон фильтра build/ будет соответствовать каталогу сборки в любом месте /home/ben , even /home/ben/many/sub/directories/build/ .

    Я думаю, что ваши пути exclude должны быть относительно исходного пути. Вы можете попробовать это вместо этого?

     rsync --exclude=build/ --exclude=.ccache -arv /home/ben home-ben/ 

    Вот тест, для сравнения:

     /tmp$ tree src dest src ├── a └── b dest └── foo/ /tmp$ rsync -nav --exclude /tmp/src/b /tmp/src /tmp/dest sending incremental file list src/ src/a src/b $ rsync -nav --exclude b /tmp/src /tmp/dest sending incremental file list src/ src/a 

    У меня была эта проблема в скрипте (я не знаю, если это ваш случай). Я был потому, что использовал эту команду в скрипте, и я использовал sh вместо bash. проверьте shebang в начале вашего скрипта.

    Interesting Posts

    Загрузка с acpi_osi = Linux исправляет управление вентилятором, но разрывает клавиши яркости

    Время доступа для разных разделов на одном жестком диске

    Где isoboot, документируются параметры boot = isolinux iso-scan / filename?

    Пользовательский каталог для команд cron

    dpkg заменяет файлы в файловой системе FAT

    Systemd: служба Python не может быть перезапущена после остановки

    Как добавить произвольные файлы в мое установочное изображение Debian

    mutt: две команды последовательности символов

    Каталог Automount Samba как / home / $ user

    Есть ли недостатки / последствия для добавления запланированных задач непосредственно в / etc / crontab вместо использования команды crontab?

    Как я могу обновить ОС на Iphone на машине Linux?

    Удаление старых значков в Gnome 3

    Разница между Oracle VM и Citrix XEN?

    что является хорошим инструментом для восстановления файлов в их пути, когда вы rm -r от root?

    Лучшее решение для поиска групп идентификаторов (перестановки / комбинации)

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