Ich habe zunächst die folgende Verzeichnisstruktur
~/a/bin
~/a/src -> /home/user/b/sync/src
Ich habe einen Symlink erstellt
cd ~/a/src
ln -s ../bin bin-xyz
jetzt ist bin-xyz ein defekter Link und es gibt keine Möglichkeit, per CD dorthin zu wechseln.
Was suche ich?
So erstellen Sie einen symbolischen Link innerhalb eines symbolisch verknüpften Ordners, sodass der relative Pfad nicht unterbrochen wird. Beispiel:
cd ~/a/src/bin-xyz
oder
cd ~/b/sync/src/bin-xyz
sollte funktionieren, vorausgesetzt, dass sich das Bin-Verzeichnis in ~/a/ oder ~b/sync/ befindet
Warum suche ich das?
Ich synchronisiere ~/b/sync/src zwischen den Maschinen, wobei ~/a/ mein Arbeitsbereich auf beiden Maschinen ist, aber die Benutzernamen der Maschinen unterschiedlich sind. Ein relativer Pfad, der funktioniert, bedeutet für mich also einen einfacheren Arbeitsablauf.
Ich verwende BitTorrent Sync zum Synchronisieren.
Danke :-)
Antwort1
jetzt ist bin-xyz ein defekter Link
Der Grund dafür ist hoffentlich offensichtlich: Entweder ..
muss man sich auf dietatsächlichübergeordnetes Verzeichnis, sonst wäre es völlig mehrdeutig.
Da ~/a/src -> /home/user/b/sync/src
, nehme ich an, dass mit $PWD
und ln -s ../bin bin-xyz
Sie versuchen, /home/user/b/sync/src/bin-xyz
auf zu verlinken /home/user/a/sync/bin
. In diesem Fall sollten Sie einfach absolute Pfade verwenden:
ln -s /home/user/a/sync/bin /home/user/b/sync/src/bin-xyz
Der Grund, ln
der die Lücken in dieser Hinsicht nicht füllt, ..
ist, dass es im Gegensatz zu Ihrer aktuellen Shell Ihre Bewegungen nicht verfolgt hat und nicht wissen kann, dass ..
Sie mit etwas anderem als dem tatsächlichen übergeordneten Verzeichnis gemeint haben.
In Ihrer Frage ist (vielleicht?) impliziert, dass Sie dies nicht tun können, da tatsächlich zwei verschiedene Systeme beteiligt sind. Dies impliziert, dass entweder eine Netzwerkfreigabe bereitgestellt ist oder Sie mit beiden dasselbe Blockgerät verwenden, was wiederum eineXY-Problem– das kann ohne weitere Details nicht gelöst werden.