J'essaie de sauvegarder mon répertoire personnel à l'aide de rsync et je souhaite exclure certains des répertoires contenant des fichiers indésirables. Je veux exclure spécifiquement /home/ben/.ccache
et /home/ben/build
. Malheureusement, la documentation pour rsync était une surcharge d'informations et n'a pas répondu à ma question. C'est ce que j'ai essayé:
rsync -arv --exclude "/home/ben/.ccache:/home/ben/build" /home/ben /media/ben/thumbdrive/
Quel est le bon moyen de le faire?
OK je me sens vraiment bête. Avant même de poster cette question, mon ami m'a montré comment le faire et c'est très simple. Pour exclure plusieurs répertoires, utilisez simplement plusieurs commutateurs --exclude=path
. Donc, ma commande ci-dessus correctement écrite est la suivante:
rsync -arv --exclude=.ccache --exclude=build /home/ben /media/ben/thumbdrive/
Lorsque vous devez exclure plusieurs répertoires et/ou fichiers, créez un fichier texte et utilisez le commutateur --exclude-from
. Créez un fichier nommé exclude_me.txt
et répertoriez-y vos exclusions. Exemple (/home/ben/exclude_me.txt
):
.ccache
build
.Java
.gvfs
.xsession-errors
Ensuite, votre rsync ressemblerait à quelque chose comme:
rsync -arv --exclude-from='/home/ben/exclude_me.txt' /home/ben /media/ben/thumbdrive/
Voici quelques informations sur les règles de filtrage qui peuvent aider:
/dir/
signifie exclure le dossier racine /dir
/dir/*
signifie obtenir le dossier racine /dir
mais pas le contenudir/
signifie exclure tout dossier où le nom contient dir/
Exemples exclus: /dir/, /usr/share/directory/, /var/spool/dir/ /var/spool/lpd/cf
signifie ignorer les fichiers qui commencent par cf
dans n’importe quel dossier de /var/spool/lpd
Reportez-vous également à la section règles de filtrage de la page de manuel.
Vous pouvez également exclure plusieurs chemins entre accolades:
rsync -arv --exclude={.ccache,build} /home/ben /media/ben/thumbdrive/