Versteckte Ordner mit rsync ausschließen, aber bestimmte versteckte Ordner und alle versteckten Dateien einschließen

Versteckte Ordner mit rsync ausschließen, aber bestimmte versteckte Ordner und alle versteckten Dateien einschließen

Ich weiß , dass es viele Beiträge darüber gibt, rsyncdass Ausschlüsse eine besondere Bedeutung haben, und ich habe einige Zeit damit verbracht, selbst nach einer Lösung zu suchen, dachte aber, dass es zweckmäßiger ist, sich auf die Gedankenkraft der Community zu verlassen, die mich sicherlich innerhalb von Sekunden auf die richtige Spur bringen kann.

Ich kopiere die Home-Verzeichnisse vieler verschiedener Benutzer, aber aus Gründen, die im Moment nicht relevant sind, muss ich grundsätzlich viele unterschiedliche Konfigurationen eliminieren, und da jeder Benutzer sehr unterschiedlich ist, möchte ich eine rsyncZeile schreiben, die in jedem Home-Ordner für einen Benutzer ausgeführt werden kann und alle versteckten Ordner ausschließt (außer.sshUnd.mozillafalls zutreffend), erfasst aber trotzdem versteckte Dateien im Home-Ordner wie.bash_history,.Profilusw.

Einschließlich der.sshund andere angegebene Ordner sind im Moment wichtig, da andere allgemeine Ordner zu einem späteren Zeitpunkt zu dieser Liste hinzugefügt werden könnten/sollten. Aber im Moment muss ich grundsätzlich alle versteckten Ordner ausschließen, sofern nicht anders angegeben.

Ich dachte, das hier würde funktionieren, aber leider funktioniert es nicht:

$ rsync -vahP --delete-before --include="*" --include={".ssh/",".mozilla/"} exclude=".*/" ./ /mount/anotherdisk/username/

Was mache ich falsch?

Antwort1

Bei mir funktioniert es, wenn ich die Option entferne --include="*"und die vergessenen Bindestriche zur --excludeOption hinzufüge, wie:

rsync -vahP --delete-before --include={'.ssh/','.mozilla/'} --exclude='.*/' /home/username/ /mount/anotherdisk/username

verwandte Informationen