Исключить скрытые папки с помощью rsync, но включить определенные скрытые папки и включить все скрытые файлы

Исключить скрытые папки с помощью rsync, но включить определенные скрытые папки и включить все скрытые файлы

Я знаю, что существует много постов о том, 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

Связанный контент