Я пытаюсь выполнить скрипт rsync для быстрой копирования файлов в один каталог на OSx. У меня проблема с параметрами include и exclude. Например, каталог, я хотел бы, чтобы скопировать это:Rsync включить, исключить и фильтровать
$HOME/Library/Dir1/RandomDir/cache/
Я был первоначально используя Rsync просто синхронизировать каталог кэша, однако OSx был не использовать подстановочные знаки в исходном пути. Командой я использовал была:
rsync -avP "$HOME/Library/Dir1/*/cache/" Dest/Dir
Когда я запустить эту команду OSx не смог найти директорию, потому что искали буквальное взаимопроникновение Dir1/*/и * не обрабатывались в качестве шаблона ,
Затем я попытался реализовать опции --include и --exclude, однако мне не удалось заставить это работать.
Я использовал
rsync -avP --include="*/" --include="cache/" --exclude"*" $HOME/Library/Dir1/ Dest/Dir/
Когда я запускаю эту команду он не копирует только каталог кэша. Я понимаю, что rsync реализует include и исключает в том порядке, в котором они введены, поэтому моя логика заключается в том, что rsync будет включать все в каталог Dir1 (заботясь о проблеме с подстановочными знаками), а затем включать только каталог кеша, затем он будет исключать все остальное. Я хочу использовать rsync для своих возможностей архивирования хранения атрибутов файлов и временных меток по всей копии.
Может ли кто-нибудь сказать мне, где я ошибаюсь? Я пробовал несколько вариантов команды, например, --include = "/cache" и --exclude = "/*", но, очевидно, пока ничего не удалось. Любая помощь вообще очень ценится. Спасибо.
Выполняется ли rsync из сценария, сценария автозапуска или с консоли? Консоль должна правильно расширять '$ HOME/Library/Dir1/*/cache /', но Automator может не работать, например. – Janek
Спасибо. Я не думаю, что использую Automator, но я не очень-то знаком с этим. Я создал сценарий bash и дал файлу расширение .command. Когда вы нажимаете на это в OSx, он открывает окно терминала и запускает команду. Будет ли это использовать Automator? – user7376266