5 votes

Exclusion d'un dossier du répertoire d'origine avec rsync exclude list

J'essaie de mettre en place rsync pour OS X 10.8.4 en utilisant un fichier d'exclusion. Cependant, il ne reconnaît pas les chemins que je veux exclure.

Je veux copier l'utilisateur ABC dans le répertoire personnel de l'utilisateur, dans un dossier appelé Backup_Mac sur un disque externe monté.

rsync -av --progress --exclude-from='/Users/ABC/excludelist.txt' /Users/ABC /Volumes/Backup_Mac

excludelist.txt contient

- /Users/ABC/Dropbox/

Il n'exclut pas le dossier Dropbox.

Maintenant, si je change le fichier d'exclusion en

- Dropbox/

il exclut ABC/Dropbox mais aussi tous les autres dossiers nommés Dropbox ailleurs dans l'arborescence des fichiers. Ce n'est pas ce que je veux - je veux exclure uniquement le dossier ABC/Dropbox mais incluez tout autre dossier appelé Dropbox par exemple ABC/Application Support/Dropbox .

Avez-vous une idée de la façon d'y parvenir ? Comment dois-je spécifier le chemin d'exclusion, relatif au dossier sauvegardé, ou relatif à la racine ?

5voto

slhck Points 209720

C'est simple, rsync utilise les chemins relatifs pour déterminer ce qu'il faut exclure. À partir de le site  rsync page d'accueil :

Si le motif commence par un /, il est ancré à un endroit particulier de la hiérarchie des fichiers, sinon il est comparé à la fin du chemin d'accès. Ceci est similaire à un ^ de tête dans les expressions régulières. Ainsi, "/foo" correspondrait à un fichier nommé "foo" soit à la "racine du transfert" (pour une règle globale) ( )

La façon la plus simple de contourner ce problème est d'utiliser la fonction --relative / -R qui vous permet d'exclure Dropbox comme suit :

rsync -avR --exclude='/Users/alex/Dropbox' /Users/alex /Volumes/Backup_Mac

Le nom relative fait référence à la façon dont rsync envoie les chemins et n'a donc rien à voir avec la spécification de motifs d'exclusion absolus.

Notez que cela crée l'arborescence complète du répertoire /Volumes/Backup_Mac/Users/alex/ mais ce n'est pas une très mauvaise chose dans votre cas.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X