본문 바로가기

Linux

symbolic link is red and relative path?

certbot을 이용해 인증서를 만들면 다음과 같은 link를 볼 수 있다.

자동으로 인증서를 배포하려는 script를 작성하려고 ln 명령어를 쓰면 빨간색의 link가 뜨고 No such file or directory 에러가 뜨는 경우가 있다.

첫번째로 빨간색의 의미는 link를 받는 대상의 해당파일이나 폴더가 없다는 것이다. 그래서 No such file or directory 에러가 뜨는 것이다. 그런데 그 경로로 가면 파일이 있다.

그 이유는 ln -s [path_first] [path_second]를 실행할 때 절대경로를 쓰면 문제가 안되지만, 상대경로를 쓴다면, path_second 링크를 만들고 그 기준으로 path_first를 살펴봐서 연결하는 것인데, 보통 오해하기 쉬운데 예를 들면

 

~/temp$ mkdir dir1
~/temp$ mkdir dir2
~/temp$ mkdir dir2/dir21
~/temp$ ln -s dir2/dir21 dir1/ln2dir21

 

다음과 같은 경우 dir1/ln2dir21의 link는 빨간색이 나올 것이다. 그 이유는 dir1/in2dir21 link는 dir1/dir2/dir21를 살펴보고 연결하려고 하기 때문이다. 따라서 그러한 경로는 없으므로 에러가 발생하는 것이다. 따라서 위와 같이 하려면,

 

ln -s ../dir2/dir21 dir1/ln2dir21

 

위와 같이 해야한다.

'Linux' 카테고리의 다른 글

top을 통해 본 exe는 도대체 뭐지?  (0) 2022.03.16
알아두면 좋을 리눅스 명령어  (0) 2021.11.18
Mongodb initialize script  (0) 2021.11.15
(에러)the input device is not a TTY  (0) 2021.11.15
Bash shell scripts 문법  (0) 2021.11.09