Rsync (Remote sync) è uno strumento molto potente per poter sincronizzare due cartelle, e per poter effettuare backup incrementali. In questo articolo vedremo, nello specifico, come escludere file o cartelle dalla sincronizzazione, con alcuni esempi pratici. Questo significa che dovrete avere un minimo di dimestichezza con questo comando. Se siete alle prime armi vi consiglio di leggere prima l’articolo sugli esempi pratici rsync.

In una situazione di backup tipica, potremmo voler escludere dei file “precisi”, dei tipi di file oppure intere directory. Vediamo come farlo attraverso vari esempi:

Escludere una directory specifica

Se volessimo ignorare una specifica directory presente sulla sorgente (e tutte le sue sottodirectory), dobbiamo usare il flag --exclude:

rsync -rf --exclude "video" ~/Desktop/devdev /Volumes/DiscoEsterno/Backup

Trasferiamo tutti i file e le cartelle contenuti nella directory sorgente ~/Desktop/devdev alla directory di destinazione /Volumes/DiscoEsterno/Backup escludendo però la cartella “video”.

Escludere le directory secondo un pattern specifico

Se volessimo escludere dalla copia dei file delle cartelle (e sottocartelle) che contengono nel loro nome un testo, come ad esempio il nome “prova”, possiamo farlo semplicemente utilizzando delle wildcard come carattere jolly:

rsync -rf --exclude "temp_*" ~/Desktop/devdev /Volumes/DiscoEsterno/Backup

In questo esempio escluderemo tutti i file e le cartelle che iniziano con “temp_”, come ad esempio la cartella temp_dir e il file temp_index.txt.

Escludere un file specifico

Per escludere un file specifico, possiamo indicarlo indicarlo direttamente:

rsync -rf --exclude "Thumbs.db" ~/Desktop/devdev /Volumes/DiscoEsterno/Backup

Ci sarà molto utile ad esempio per NON effettuare il backup di file “inutili” e ricostruibili come Thumbs.db su windows o .DS_Store su mac.

Escludere un tipo di file

Ci capiterà di non voler sincronizzare uno specifico tipo di file, ad esempio tutte le immagini .jpg o tutti i log di un sistema. Per escludere questo tipo di file dalla sincronizzazione, dovremo indicare l’estensione in questo modo:

rsync -rf --exclude "*.jpg" ~/Desktop/devdev /Volumes/DiscoEsterno/Backup

Nessun file .jpg verrà sincronizzato con questo comando.