Je me suis penché sur la page de manuel rsync ainsi que sur plusieurs questions connexes ici sur serverfault. J'ai joué avec les options -R et -L et -l, mais sans succès.
Voici la question :lors de l'envoi d'un répertoire de local à distant, existe-t-il une option (ou une combinaison d'options) qui déplace les liens symboliques par rapport au répertoire local afin qu'ils deviennent relatifs au répertoire de destination sur la machine distante ?
Voici un exemple minimal de ce que je souhaite envoyer :
répertoire local : /home/bob/foo
/home/bob/foo/a --> /home/bob/foo/bar
/home/bob/foo/bar
et voici comment je voudrais qu'il se matérialise dans le
répertoire distant : /u/apps/foo
/u/apps/foo/a --> /u/apps/foo/bar
/u/apps/foo/bar
Par exemple, rsync -az /home/bob/foo/ remote:/u/apps/foo/
ne le fait pas tout à fait ; on se retrouve avec :
/u/apps/foo/a --> /home/bob/foo/bar
/u/apps/foo/bar
Soit /home/bob/foo/bar
existe ou non sur la machine distante n'est pas pertinent ; dans les deux cas, le résultat n'est certainement pas ce dont j'ai besoin.
Réponse acceptée :
Si les liens sont vers des chemins absolus, non, il n'y a pas moyen de les contourner. Vous pouvez le contourner en rendant les liens symboliques relatifs :
/home/bob/foo/a --> ./bar /home/bob/foo/bar
mais cela peut s'avérer difficile, selon la façon dont vous générez ces liens et leur nombre.