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?


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


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.