J'essaie de copier le contenu d'une série de répertoires de manière non récursive vers un autre système distant.
/dirA/dir1/file
/dirA/dir2/file
/dirA/dir3/file
dir1, dir2 et dir3 contiennent de nombreux répertoires que je ne souhaite pas copier. Copiez sur l'hôte distant vers / dirB en conservant la même structure de répertoires.
J'ai essayé:
rsync /dirA/*/ host:/dirB/
rsync /dirA/ host:/dirB/
Mais ils ne font pas ce que je veux.
-f '- /*/'
pour restreindre aux fichiers de niveau supérieur uniquement. J'ai également dû spécifier-f '- .*'
d'exclure les fichiers de points, car je synchronisais un répertoire personnel.La solution ci-dessus (par PleaseStand) n'a pas fonctionné pour moi pour une raison quelconque. Cela a fonctionné cependant:
rsync -avc --no-r ./source/* ./destination/
Il y a aussi cette alternative:
rsync -avc --exclude "/" ./source/ ./destination/
la source
L'une des "fonctionnalités" de rsync est la façon dont les répertoires sont analysés.
rsync /dirA/ host:/dirB/
etrsync /dirA host:/dirB
devrait théoriquement être équivalent.Comme vous ne voulez pas encourager la récursivité, vous voulez éviter
-r
,-a
ce qui implique en plus d'autres choses-r
.Je n'ai pas encore fini mes recherches, mais c'est ma réponse de départ.
la source