Soft link와 ln

Posted on May 30, 2020 by 주형
Tags: ,

soft 링크는 다른 위치에 있는 폴더나 파일을 가리키는 파일이다. 원본 파일을 수정하 면 소프트 링크를 사용하는 디렉토리에서도 항상 최종 결과물을 읽을 수 있기 때문에 편리하다.

soft link는 ln 프로그램을 사용해서 만든다. ln -s TARGET LINK_NAME 을 실행하 면 TARGET을 가리키는 LINK_NAME 링크가 생성된다.

상대경로의 함정

ln의 동작이 cpmv와 대응되어 보이지만 TARGET의 해석 방식이 다르기 때문에 조심해야 한다. TARGET을 절대경로를 사용하면 문제될 여지가 없다. 문제는 상대경로 를 사용할 때다. 상대경로를 사용하는 경우 상대경로의 기준이 ln을 실행하는 현재 디렉토리가 아니라 생성될 링크의 부모 디렉토리가 된다.

/home/jh 디렉토리에서 ln -s ./x /tmp/y를 실행하면 ./x를 가리키는 링크 /tmp/y 가 생성된다. 링크가 있는 /tmp 기준으로 상대경로를 해석하므로 /tmp/y는 /tmp/x를가 리킨다.

현재 디렉토리를 기준으로 상대경로를 사용하고 싶다면 -r 옵션을 사용하자. -r 옵션을 사용하면 상대경로로 입력한 TARGET이 현재 디렉토리를 기준으로 절대경로로변 경되어 링크가 만들어진다. 현재 디렉토리가 /home/jh 일때 ln -s -r ./x /tmp/y를 실행하면 /home/jh/x를 가리키는 링크가 생성된다.