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

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

次のディレクトリ構造があります。

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

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

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

これでb​​in-xyzは壊れたリンクなので、CDに入る方法はありません。

私は何を探していますか?

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

 cd ~/a/src/bin-xyz 

または

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

~/a/ または ~b/sync/ に bin ディレクトリがある場合に動作します。

私はこれをなぜ探しているのですか?

コンピューター間で ~/b/sync/src を同期しています。ここで ~/a/ は両方のコンピュータのワークスペースですが、コンピュータのユーザー名は異なります。したがって、有効な相対パスがあることは、ワークフローがより簡単であることを意味します。

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

ありがとうございます:-)

答え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の問題- この問題は、詳細がなければ解決できません。

関連情報