Je tente de synchroniser tous les fichiers à partir d'une grande structure de répertoires dans un seul répertoire racine (c'est-à-dire sans créer les sous-répertoires mais en incluant tous les fichiers récursifs).
Environnement :
- Ubuntu 12.04 x86
- RSYNC version 3.0.9
- GNU bash version 4.2.25(1)
Jusqu'à présent, j'ai cette commande appelée à partir d'un script bash qui fonctionne bien et fournit la fonctionnalité de base requise :
shopt -s globstar
rsync -adv /chemin/vers/source/**/. /chemin/vers/dest/. --exclude-from=/monfichierd'exclusion
Le contenu de monfichierd'exclusion
est :
nomdufichier
*/
# le */ empêche tous les répertoires d'apparaître dans /chemin/vers/dest/
# d'autres tentatives infructueuses ont inclus :
repertoire1
repertoire1/
repertoire1/*
Je dois maintenant exclure les fichiers situés à l'intérieur de certains répertoires dans l'arborescence source. Cependant, en raison de l'approche globstar consistant à regarder dans tous les répertoires, rsync est incapable de faire correspondre les répertoires à exclure. En d'autres termes, à l'exception de mes règles /*
et nomdufichier
, tout le reste est complètement ignoré.
Je recherche donc de l'aide sur la syntaxe des exclusions ou s'il existe une autre manière d'effectuer la synchronisation de nombreux répertoires dans un seul répertoire de destination qui n'utilise pas mon approche globstar.
Toute aide ou conseil serait très apprécié.