Ich versuche, mein Ausgangsverzeichnis mit rsync zu sichern, und möchte einige der Verzeichnisse ausschließen, die Junk enthalten. Ich möchte ausdrücklich ausschließen /home/ben/.ccache
und /home/ben/build
. Leider war die Dokumentation für rsync überladen und beantwortete meine Frage nicht. Das habe ich versucht:
rsync -arv --exclude "/home/ben/.ccache:/home/ben/build" /home/ben /media/ben/thumbdrive/
Was ist der richtige Weg, um dies zu tun?
command-line
rsync
Freedom_Ben
quelle
quelle
a
impliziertr
:)-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
Antworten:
OK, ich fühle mich wirklich dumm. Bevor ich diese Frage überhaupt gestellt habe, hat mir mein Freund gezeigt, wie es geht und es ist wirklich einfach. Um mehrere Verzeichnisse auszuschließen, verwenden Sie einfach mehrere
--exclude=path
Schalter. So ist mein Befehl oben richtig geschrieben wie folgt:quelle
-a
include-r
so-ar
ist redundant.Wenn Sie mehrere Verzeichnisse und / oder Dateien ausschließen möchten, erstellen Sie eine Textdatei und verwenden Sie den
--exclude-from
Schalter. Erstellen Sie eine Datei mit dem Namenexclude_me.txt
und listen Sie darin Ihre Ausschlüsse auf. Beispiel (/home/ben/exclude_me.txt
):Dann würde Ihr rsync ungefähr so aussehen:
Dies sind einige Informationen zu Filterregeln, die hilfreich sein können:
/dir/
bedeutet, den Stammordner auszuschließen/dir
/dir/*
bedeutet, den Stammordner,/dir
aber nicht den Inhalt zu erhaltendir/
bedeutet, dass Ordner ausgeschlossen werden, in denen der Name enthalten istdir/
Ausgeschlossene Beispiele:
/dir/, /usr/share/directory/, /var/spool/dir/ /var/spool/lpd/cf
bedeutet, dass Dateien übersprungen werden, diecf
in einem beliebigen Ordner beginnen/var/spool/lpd
Siehe auch den Abschnitt Filterregeln auf der Manpage.
quelle
Sie können auch mehrere Pfade in geschweiften Klammern ausschließen:
quelle
IFS=$'\n'; rsync -arv $(printf '.ccache\nbuild\n' | sed 's/^/--exclude=/g') /home/ben /media/ben/thumbdrive/
. Oder Sie könnten einfach mehrere--exclude
Argumente verwenden, die Sie manuell eingeben müssten.