RSync: esclude una particolare sottodirectory e i relativi elementi secondari in cui la sottodirectory esiste a livelli diversi


37

Buongiorno,

Sto usando rsync per sincronizzare ricorsivamente un albero di cartelle remote che assomiglia a quanto segue:

/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

Non so come apparirà l'albero delle cartelle e cambierà nel tempo. Quindi quello che voglio essere in grado di fare è risincronizzare ricorsivamente quanto sopra ma escludere la cartella "cache" e tutte le sottocartelle che contiene in modo che alla fine finisca la sincronizzazione:

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

Eventuali suggerimenti?


Risposte:


55

Vuoi la --excludebandiera. Ad esempio, un rsync locale:

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

È davvero così semplice: quella regola di esclusione corrisponderà a una directory denominata "cache" in qualsiasi punto dell'albero.

Per ulteriori informazioni, cercare "--exclude" e la sezione "REGOLE DEL FILTRO" nella pagina man di rsync:

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


1
Doh !!. Grazie sono le risposte semplici che mi piacciono di più :-)
TheEdge

1
Che dire di non ovunque in un albero? Come, escludi solo a/cache. UPD Visualizza questa risposta
x-yuri

2
Inoltre --exclude /cache/(con il comando /) esclude solo la a/cachedirectory, non qualsiasi directory denominata cache.
Amir Ali Akbari,

Perché a/ b/nella riga di comando sopra, cosa significa?
Danijel,

1
@Danijel: a/è la directory da cui stiamo sincronizzando (o copiando); b/è la directory in cui ci stiamo sincronizzando.
Jander il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.