이 명령은 일반적으로 매력처럼 작동하지만 이것은 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)