RSync: excluyendo un subdirectorio particular y sus hijos donde el subdirectorio existe en diferentes niveles

37

G'Day

Estoy usando rsync para sincronizar recursivamente un árbol de carpetas remoto que se parece a lo siguiente:

/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

No sé cómo se verá el árbol de carpetas y cambiará con el tiempo. Entonces, lo que quiero poder hacer es sincronizar recursivamente lo anterior pero excluir la carpeta "caché" y las subcarpetas que contiene para que finalmente termine sincronizando:

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

¿Alguna sugerencia?

El borde
fuente
Vea también un tutorial de filtro rsync .
Gilles 'SO- deja de ser malvado'

Respuestas:

55

Quieres la --excludebandera Por ejemplo, un rsync local:

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

Realmente es así de simple: esa regla de exclusión coincidirá con un directorio llamado "caché" en cualquier parte de su árbol.

Para obtener más información, busque "--exclude" y la sección "REGLAS DE FILTRO" en la página de manual de rsync:

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

Jander
fuente
1
Doh !! Gracias, son las respuestas simples que más me gustan :-)
TheEdge
1
¿Qué pasa con no en cualquier parte del árbol? Me gusta, solo excluir a/cache. UPD Ver esta respuesta
x-yuri
2
Además --exclude /cache/(con el / inicial /) solo excluirá el a/cachedirectorio, no cualquier directorio nombrado cache.
Amir Ali Akbari
¿Por qué a/ b/en la línea de comando anterior, qué significa?
Danijel
1
@Danijel: a/es el directorio desde el que estamos sincronizando (o copiando); b/es el directorio en el que estamos sincronizando.
Jander