So erstellen Sie einen relativen Symlink, der auf allen PCs funktioniert

So erstellen Sie einen relativen Symlink, der auf allen PCs funktioniert

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 $PWDund ln -s ../bin bin-xyzSie versuchen, /home/user/b/sync/src/bin-xyzauf 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, lnder 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.

verwandte Informationen