PC間で機能する相対シンボリックリンクを作成する方法

PC間で機能する相対シンボリックリンクを作成する方法

まず、次のようなディレクトリ構造があります

~/a/bin
~/a/src -> /home/user/b/sync/src

シンボリックリンクを作成しました

cd ~/a/src
ln -s ../bin bin-xyz

現在、bin-xyz はリンクが壊れており、そこに cd する方法はありません。

私が探しているものは何ですか?

相対パスが壊れないように、シンボリックリンクされたフォルダ内にシンボリックリンクを作成する方法。たとえば、

 cd ~/a/src/bin-xyz 

または

 cd ~/b/sync/src/bin-xyz

~/a/ または ~b/sync/ に bin ディレクトリがあれば動作するはずです。

なぜこれを探しているのでしょうか?

私はマシン間で ~/b/sync/src を同期しています。ここで、~/a/ は両方のマシンのワークスペースですが、マシンのユーザー名は異なります。したがって、機能する相対パスがあると、ワークフローが簡単になります。

同期にはBittorent Syncを使用しています。

ありがとう :-)

答え1

現在、bin-xyzはリンク切れです

その理由は明らかでしょう。どちら..実際の親ディレクトリを指定しないと、完全に曖昧になります。

なので、 としてにリンクしようとしていると~/a/src -> /home/user/b/sync/src推測します。その場合は、絶対パスを使用する必要があります。$PWDln -s ../bin bin-xyz/home/user/b/sync/src/bin-xyz/home/user/a/sync/bin

 ln -s /home/user/a/sync/bin /home/user/b/sync/src/bin-xyz

lnこの点に関して空白が埋まらない理由..は、現在のシェルとは異なり、ユーザーの動きを追跡しておらず、..実際の親ディレクトリ以外のものを意味していることを知る方法がないからです。

質問では、実際には2つの異なるシステムが関係しているため、これを行うことはできないと(おそらく)示唆されています。これは、ネットワーク共有がマウントされているか、両方で同じブロックデバイスを使用していることを意味し、XY問題-- 詳細がなければ解決できません。

関連情報