Les liens symboliques sont perdus après l'exécution de rsync pour synchroniser deux répertoires

0

J'ai deux répertoires portant le même nom avec des sous-répertoires similaires et j'aimerais fusionner le contenu de l'un avec l'autre. J'essaie d'utiliser rsync pour cela et je constate que les liens symboliques semblent avoir été créés dans le répertoire de destination, mais disparaissent la prochaine fois que j'accède au répertoire (j'aimerais conserver les liens symboliques).

Un exemple (le répertoire de destination est actuellement vide):

Répertoire source:
/tmp/dir_3

Répertoire de destination:
/dir_1/dir_3

La commande rsync que j'utilise:

rsync -av /tmp/dir_3 /dir_1

La sortie de rsync semble indiquer que les liens symboliques sont suivis et si je cd dans le répertoire de destination et exécute immédiatement le tree commande, il affiche les liens symboliques et le nombre correct de répertoires et de fichiers (c’est-à-dire qu’il correspond à ce qui se trouve dans le répertoire de destination). Cependant, la deuxième fois que je lance le tree commande les liens symboliques ont disparu et je peux confirmer avec ls.

Les liens symboliques en question sont un peu délicats, mais ils lient entièrement entre les sous-répertoires du répertoire Source. Un exemple simplifié:

/tmp/dir_3/data/33/22/bob
est un lien vers
../../../name/id

et

/tmp/dir_3/name/id/bob
est un lien vers
../../data/33/22

J'ai aussi essayé d'ajouter le -l option à la commande rsync mais cela ne semble pas faire une différence (et je ne m'attendrais pas vraiment à ce que -a devrait copier les liens).

Des idées que je fais mal?


la source
1
Si les liens symboliques sont présents après la fin de rsync, mais disparaissent lorsque vous regardez plus tard, il est clair que quelque chose d'autre que rsync les manipule. Ou ai-je mal compris l'ordre des événements?
IMSoP
Vous avez raison à propos de la séquence des événements. J'ai constaté que si je déplace le dossier dest en dehors du dossier personnel, le problème ne se produit pas. Je ne sais pas pourquoi c'est un problème car j'exécute rsync car cet utilisateur et les répertoires et contenus source et de destination appartiennent à cet utilisateur. Cela fonctionnera pour notre installation de production, je vais donc aller de l'avant avec cela. Ce serait bien de comprendre ce qui se passe ici, cependant… je pourrais y revenir.