RSync - Ausschließen eines bestimmten Unterverzeichnisses und seiner untergeordneten Verzeichnisse, in denen das Unterverzeichnis auf verschiedenen Ebenen vorhanden ist

36

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?

Die Kante
quelle
Siehe auch ein Tutorial zum rsync-Filter .
Gilles 'SO - hör auf, böse zu sein'

Antworten:

53

Du willst die --excludeFlagge. Zum Beispiel ein lokales rsync:

rsync -a --exclude cache/ src_folder/ target_folder/

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

Jander
quelle
1
Doh !!. Danke, es sind die einfachen Antworten, die mir am besten gefallen :-)
TheEdge
1
Was ist mit nicht irgendwo im Baum? Gerne nur ausschließen a/cache. UPD Siehe diese Antwort
x-yuri
2
Auch --exclude /cache/(mit dem führenden /) wird nur das a/cacheVerzeichnis ausgeschlossen, nicht das angegebene Verzeichnis cache.
Amir Ali Akbari
Warum a/ b/in der obigen Befehlszeile, was bedeutet das?
Danijel
1
@Danijel: a/ist das Verzeichnis, aus dem wir synchronisieren (oder kopieren); b/ist das Verzeichnis, in das wir synchronisieren.
Jander