まず、次のようなディレクトリ構造があります
~/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
推測します。その場合は、絶対パスを使用する必要があります。$PWD
ln -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問題-- 詳細がなければ解決できません。