Zabýval jsem se manuálovou stránkou rsync a také několika souvisejícími otázkami zde na serverfault. Hrál jsem s možnostmi -R a -L a -l, ale bez úspěchu.
Zde je otázka:při odesílání adresáře z místního do vzdáleného existuje možnost (nebo kombinace možností), která přemístí symbolické odkazy vzhledem k místnímu adresáři tak, aby se staly relativními k cílovému adresáři na vzdáleném počítači?
Zde je minimální příklad toho, co chci odeslat:
místní adresář: /home/bob/foo
/home/bob/foo/a --> /home/bob/foo/bar
/home/bob/foo/bar
a tady je, jak bych chtěl, aby se to zhmotnilo v
vzdálený adresář: /u/apps/foo
/u/apps/foo/a --> /u/apps/foo/bar
/u/apps/foo/bar
Například rsync -az /home/bob/foo/ remote:/u/apps/foo/
úplně to nedělá; skončíme s:
/u/apps/foo/a --> /home/bob/foo/bar
/u/apps/foo/bar
Zda /home/bob/foo/bar
existuje nebo není na vzdáleném počítači je irelevantní; v obou případech výsledek rozhodně není to, co potřebuji.
Přijatá odpověď:
Pokud jsou odkazy na absolutní cesty, ne, neexistuje způsob, jak to obejít. Můžete to obejít tak, že symbolické odkazy nastavíte jako relativní:
/home/bob/foo/a --> ./bar /home/bob/foo/bar
ale to se může ukázat jako obtížné v závislosti na tom, jak tyto odkazy generujete a kolik jich je.