
Я знаю, что существует много постов о том, rsync
что следует исключить из рассмотрения кого-то конкретного, и я потратил некоторое время на поиски решения, но посчитал более целесообразным обратиться к силе общественного мнения, которая, я уверен, может направить меня по верному пути за считанные секунды.
Я копирую домашние каталоги многих разных пользователей, но по причинам, не имеющим сейчас значения, мне нужно в основном исключить множество отличающихся конфигураций, и поскольку все пользователи сильно отличаются, я хочу написать строку, rsync
которую можно запустить в любой домашней папке для пользователя, которая исключает все скрытые папки (кроме.sshи.мозиллаесли применимо), но все равно захватывает скрытые файлы в домашней папке, такие как.bash_history,.профильи т. д.
В том числе.sshи другие указанные папки важны в данный момент, поскольку другие общие папки могут/должны быть добавлены в этот список позднее. Но сейчас мне нужно в основном исключить все скрытые папки, если не указано иное.
Я думал, что это сработает, но, к сожалению, это не сработало:
$ rsync -vahP --delete-before --include="*" --include={".ssh/",".mozilla/"} exclude=".*/" ./ /mount/anotherdisk/username/
Что я делаю не так?
решение1
У меня это работает, если я удаляю опцию --include="*"
и добавляю забытые дефисы к --exclude
опции, например:
rsync -vahP --delete-before --include={'.ssh/','.mozilla/'} --exclude='.*/' /home/username/ /mount/anotherdisk/username