작업 디렉토리에 없는 심볼릭 링크 만들기

작업 디렉토리에 없는 심볼릭 링크 만들기

이 명령은 일반적으로 매력처럼 작동하지만 이것은 ln -si GIT/Settings/session ./.mozilla/firefox/foo.default/파일로 표시되는 일종의 끊어진 링크를 생성합니다.

왜 그런 겁니까?

심지어 sudo ln -fs작동하지 않습니다.

이를 수행하는 방법에 대한 제안이 있으십니까?

미리 감사드립니다.

답변1

이상하게 들리겠지만,

ln -si ../../../GIT/Settings/session ./.mozilla/firefox/foo.default/

당신이 원하는 것을 할 것입니다. 여기서 경험적으로 볼 수 있는 규칙은 링크를 배치하는 위치를 기준으로 링크 대상을 지정해야 한다는 것입니다.

Unix 및 Unix 계열 파일 시스템에서 심볼릭 링크는 실제로 내용이 경로인 특수 파일입니다. 입력하면 심볼릭 링크가 생성됩니다.ln path filename파일 이름그 내용은. 예를 들어 다음을 입력하면

ln foo bar/baz

그러면 시스템은 "foo" 경로를 포함하는 bar/baz라는 링크를 생성합니다. 그러나 해당 링크는 깨질 것입니다. 링크를 역참조하려고 하면 커널이 해당 링크를 역참조합니다.링크 디렉토리– 이 경우에는 바. 커널은 존재하지 않는 bar/foo를 찾습니다.

반면에 다음을 입력하면

ln ../foo bar/baz

그러면 시스템은 "../foo" 경로를 포함하는 bar/baz라는 링크를 생성합니다. 이 링크를 역참조하면 커널은 실제로 존재하는(그리고 실제로 원하는 것인) bar/../foo를 찾습니다.

답변2

소스 및 대상 파일의 전체 경로를 사용할 수 있습니다.

ln -s (full path to /foo) (full path to bar/baz)

관련 정보