Tag auch,
Ich verwende rsync, um einen Remote-Ordnerbaum zu synchronisieren, der ungefähr so aussieht:
/folderA/a1/cache
/folderA/a1/cache/A1
/folderA/a1/cache/A2
/folderA/a1/somefolder
/folderA/a1/someotherfolder
/folderA/a2/somefolder/cache
/folderB/cache/
/folderB/b1/somefolder/cache
/folderB/b1/somefolder/yetanotherfolder/cache
/folderB/b1/somefolder/yetanotherfolder/cache/B1
/folderB/b1/somefolder/yetanotherfolder/cache/B2
Ich weiß nicht, wie der Ordnerbaum aussehen und sich im Laufe der Zeit ändern wird. Ich möchte also in der Lage sein, die obigen Schritte rekursiv zu synchronisieren, aber den Ordner "cache" und alle darin enthaltenen Unterordner auszuschließen , damit ich letztendlich synchronisiere:
/folderA/a1
/folderA/a1/somefolder
/folderA/a1/someotherfolder
/folderA/a2/somefolder
/folderB/
/folderB/b1/somefolder
/folderB/b1/somefolder/yetanotherfolder/
Irgendwelche Vorschläge?
Antworten:
Du willst die
--exclude
Flagge. Zum Beispiel ein lokales rsync:Es ist wirklich so einfach: Diese Ausschlussregel entspricht einem Verzeichnis mit dem Namen "cache" an einer beliebigen Stelle in Ihrem Baum.
Weitere Informationen finden Sie auf der rsync-Manpage unter "--exclude" und im Abschnitt "FILTER RULES":
http://www.samba.org/ftp/rsync/rsync.html
quelle
a/cache
. UPD Siehe diese Antwort--exclude /cache/
(mit dem führenden /) wird nur dasa/cache
Verzeichnis ausgeschlossen, nicht das angegebene Verzeichniscache
.a/ b/
in der obigen Befehlszeile, was bedeutet das?a/
ist das Verzeichnis, aus dem wir synchronisieren (oder kopieren);b/
ist das Verzeichnis, in das wir synchronisieren.