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.