RSync - Exclure un sous-répertoire particulier et ses enfants lorsque le sous-répertoire existe à différents niveaux

37

G'Day,

J'utilise rsync pour synchroniser de manière récursive une arborescence de dossiers distants qui ressemble à ce qui suit:

/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

Je ne sais pas à quoi ressemblera l’arborescence de dossiers et elle changera avec le temps. Donc, ce que je veux être capable de faire est récursivement rsync ce qui précède, mais exclure le dossier "cache" et tous les sous-dossiers qu'il contient afin que je finisse par synchroniser:

/folderA/a1
/folderA/a1/somefolder
/folderA/a1/someotherfolder
/folderA/a2/somefolder
/folderB/
/folderB/b1/somefolder
/folderB/b1/somefolder/yetanotherfolder/

Aucune suggestion?

Le bord
la source
Voir aussi un tutoriel sur les filtres rsync .
Gilles 'SO- arrête d'être méchant'

Réponses:

55

Tu veux le --excludedrapeau. Par exemple, un rsync local:

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

C’est aussi simple que cela: cette règle d’exclusion correspond à un répertoire nommé "cache" n’importe où dans votre arborescence.

Pour plus d'informations, recherchez "--exclude" et la section "FILTER RULES" (Règles de filtrage) de la page de manuel rsync:

http://www.samba.org/ftp/rsync/rsync.html

Jander
la source
1
Doh !!. Merci c'est les réponses simples que j'aime le plus :-)
TheEdge
1
Pourquoi pas n'importe où dans l'arbre? Comme, seulement exclure a/cache. UPD Voir cette réponse
x-yuri
2
De même --exclude /cache/(avec le /) en tête, seul le a/cacherépertoire est exclu , pas un répertoire nommé cache.
Amir Ali Akbari
Pourquoi a/ b/dans la ligne de commande ci-dessus, qu'est-ce que cela signifie?
Danijel
1
@Danijel: a/est le répertoire à partir duquel nous synchronisons (ou copions); b/est le répertoire dans lequel nous synchronisons.
Jander