`Rsync`, qui signifie “Remote Sync”, est un outil open source qui utilise le protocole `SSH` pour transférer rapidement des fichiers entre un local et un système distant. Il est majoritairement utilisé pour la sauvegarde, la copie et le miroir de fichiers ou répertoires.
Pour exclure plusieurs répertoires lors de l’utilisation de `Rsync`, nous utilisons l’option `—exclude`.
Par exemple, si on souhaite synchroniser tous les fichiers d’un répertoire, à l’exception de certains sous-répertoires spécifiques, on utilise une commande comme celle-ci:
```
rsync -av —exclude=‘dir1’ —exclude=‘dir2’ —exclude=‘dir3’ -e ssh ./ source
destination
```
Ici, `dir1`, `dir2`, et `dir3` seront exclus de la synchronisation.
Si la liste des répertoires à exclure est très longue, il peut être plus efficace de les lister dans un fichier, puis de spécifier ce fichier avec l’option `—exclude-from` :
```
rsync -av —exclude-from=‘exclude.txt’ -e ssh ./ source destination
```
où `exclude.txt` contient une liste des répertoires à exclure:
```
dir1
dir2
dir3
…
```
Veuillez noter qu’il est important de comprendre que `rsync` analyse les chemins d’exclusion par rapport au point de départ de la source. Par exemple, si la source est `./Documents/` et qu’on veut exclure `./Documents/pictures/`, il faut écrire `—exclude=‘pictures/’` et non pas `—exclude=’./Documents/pictures/’`.
La fonction `rsync` est très puissante et flexible. D’autres arguments et options peuvent également être spécifiés, comme indiqué dans le manuel `rsync`, qui peut être consulté en tapant `man rsync` dans un terminal Unix/Linux.
De plus, n’oubliez pas que taper des commandes sensible dans un terminal (surtout en tant que super utilisateur ou root) peut être dangereux pour votre système si vous n’êtes pas sûr de ce que fait la commande. Toujours vérifier les commandes et comprendre ce qu’elles font avant de les exécuter.
Sources:
- [Rsync man page](https://linux.die.net/man/1/rsync)
- Linux Command Line and Shell Scripting Bible, 3rd Edition by Richard Blum and Christine Bresnahan.
- [GeekStuff – Rsync examples](https://www.thegeekstuff.com/2011/01/rsync-exclude-files-and-folders/)