Ich habe die rsync-Manpage sowie einige verwandte Fragen hier auf serverfault durchforstet. Ich habe mit den Optionen -R und -L und -l gespielt, aber kein Glück.
Hier ist die Frage:Gibt es beim Senden eines Verzeichnisses von lokal nach remote eine Option (oder Optionskombination), die symbolische Links relativ zum lokalen Verzeichnis verschiebt, sodass sie relativ zum Zielverzeichnis auf dem Remote-Computer werden?
Hier ist ein minimales Beispiel dessen, was ich senden möchte:
lokales Verzeichnis: /home/bob/foo
/home/bob/foo/a --> /home/bob/foo/bar
/home/bob/foo/bar
und hier ist, wie ich möchte, dass es in der
materialisiert wird
Remote-Verzeichnis: /u/apps/foo
/u/apps/foo/a --> /u/apps/foo/bar
/u/apps/foo/bar
Beispiel:rsync -az /home/bob/foo/ remote:/u/apps/foo/
tut es nicht ganz; wir enden mit:
/u/apps/foo/a --> /home/bob/foo/bar
/u/apps/foo/bar
Ob /home/bob/foo/bar
auf dem Remote-Rechner vorhanden ist oder nicht, ist irrelevant; in beiden Fällen ist das Ergebnis definitiv nicht das, was ich brauche.
Akzeptierte Antwort:
Wenn es sich bei den Links um absolute Pfade handelt, führt kein Weg daran vorbei. Sie können dies umgehen, indem Sie die symbolischen Links relativ machen:
/home/bob/foo/a --> ./bar /home/bob/foo/bar
aber das kann sich als schwierig erweisen, je nachdem, wie Sie diese Links generieren und wie viele davon es gibt.