Rsync --exclude-from= Abfrage unter Ubuntu 18.04

Rsync --exclude-from= Abfrage unter Ubuntu 18.04

Ich versuche, meinen Home-Ordner mit dem folgenden Befehl auf einem externen Laufwerk zu sichern:

rsync -acu --delete --exclude-from='/home/chh1/rsync_exclude.txt' /home/ /media/chh1/f86f92f7-bcb4-4b8e-8a64-8a210606d422/home_backup/

Die Datei --exclude-from=

/home/chh1/rsync_exclude.txt

enthält die folgenden Einträge:

.cache
crewdb.bak.sql

Ich möchte wirklich .cache, aber auch das darin enthaltene .dconf ausschließen, da ich Dateien ausschließen möchte, die Root-Berechtigungen erfordern, und unnötige .cache-Daten, die in /home/chh1/.cache enthalten sind.

Wenn ich laufe

find ~ -name ".cache"

Ich erhalte die folgende Ausgabe:

/home/chh1/snap/pdfmixtool/common/.cache
/home/chh1/snap/gnome-system-monitor/common/.cache
/home/chh1/snap/okular/63/.cache
/home/chh1/snap/freemind/common/.cache
/home/chh1/.cache
find: ‘/home/chh1/.cache/dconf’: Permission denied

Ich möchte wirklich ausschließen

/home/chh1/.cache

Dadurch würde auch der Dconf- und allgemeine Cache-Müll entfernt. Ich möchte jedoch die anderen Cache-Verzeichnisse, die beim Ausführen des Find-Befehls gefunden werden, nicht ausschließen.

da --exclude-from= nur Muster mit dem abgleicht, was in der Ausschlussdatei steht, wie kann ich einen Pfad statt eines Musters angeben und vorzugsweise innerhalb der Ausschlussdatei? Gibt es eine Möglichkeit?

Vielen Dank für Ihre Hilfe, sie wird wirklich sehr geschätzt!

Antwort1

Ihre Ausschlussliste kann auch absolute Namen enthalten, die /home/in Ihrem Fall unterhalb des Startverzeichnisses übereinstimmen. Verwenden Sie die Zeile

/chh1/.cache

statt .cachenur auszuschließen /home/ /chh1/.cache, d.h./home/chh1/.cache

verwandte Informationen