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 동기화를 사용하고 있습니다.

감사해요 :-)

답변1

이제 bin-xyz는 끊어진 링크입니다

그 이유는 분명합니다. 둘 중 하나는 ..다음을 참조해야 합니다.실제상위 디렉토리가 아니면 완전히 모호해집니다.

이후로 ~/a/src -> /home/user/b/sync/src, 나는 그것을 as로 가정 $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이와 관련하여 공백을 채우지 않는 이유 ..는 현재 쉘과 달리 움직임을 추적하지 않았으며 ..실제 상위 디렉토리가 아닌 다른 것을 의미한다는 것을 알 수 없기 때문입니다.

귀하의 질문에는 실제로 두 가지 다른 시스템이 관련되어 있기 때문에 이를 수행할 수 없다는 것이 암시되어 있습니다. 이는 네트워크 공유가 마운트되었거나 두 가지 모두에 동일한 블록 장치를 사용한다는 것을 의미합니다.XY 문제-- 자세한 내용이 없으면 문제를 해결할 수 없습니다.

관련 정보