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:
Quieres la
--exclude
bandera Por ejemplo, un rsync local: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
fuente
a/cache
. UPD Ver esta respuesta--exclude /cache/
(con el / inicial /) solo excluirá ela/cache
directorio, no cualquier directorio nombradocache
.a/ b/
en la línea de comando anterior, qué significa?a/
es el directorio desde el que estamos sincronizando (o copiando);b/
es el directorio en el que estamos sincronizando.