Profile picture

[Linux] readlink : 심볼릭 파일 경로 읽기

JaehyoJJAng2023년 06월 11일

readlink

심볼릭 링크가 연결되어 있는 원본 파일을 찾는 명령어이다.
readlink는 심볼릭 링크인 path가 가르키는 원본의 파일 이름을 리턴한다. 알아낸 원본 파일의 이름은 buffer에 저장된다.

bufsize는 buffer의 저장 크기이며 만약 buffer의 크기가 원본 파일의 이름을 담기에 충분하지 않다면 나머지 부분은 잘리게 된다.
readlink는 원본 파일의 완전한 경로를 가져온다.


사용법

$ readlink -{Option} File

예시

"/home/jaehyo/setup/01_aws_setup/utilities/bin" 경로에 setup.sh 파일이 있다. 해당 파일을 ln 명령을 사용하여 ~/ln-setup.sh로 심볼릭 파일을 생성해보자.

$ ln -s /home/jaehyo/setup/01_aws_setup/utilities/bin/setup.sh ~/ln-setup.sh

ㅣn-setup.sh 심볼릭 파일의 원본 파일을 찾아보자.

$ readlink -f ~/ln-setup.sh
/home/jaehyo/setup/01_aws_setup/utilities/bin/setup.sh

옵션

옵션 설명
-f,--canonicalize 주어진 이름의 모든 구성 요소에 있는 모든 심볼릭 링크를 따라가면서 정규화 함. 마지막 구성 요소를 제외하고 모두 존재해야함.
-e,--canonicalize-existing 주어진 이름의 모든 구성 요소에 있는 모든 심볼릭 링크를 따라가며 정규화 한다. 마지막 구성 요소를 제외하고 모두 존재해야한다.
-m,--canonicalize-missing 구성 요소 존재에 대한 요구 사항없이 주어진 이름의 모든 구성 요소에 있는 모든 심볼릭 링크를 따라 정규화한다.

반환 값

성공할 경우 Buffer에 들어 있는 문자의 갯수가 반환되며 에러가 발생했다면 -1 Return되며 적당한 Error 코드가 설정된다.

$ readlink ./error.file
$ echo ${?}
1

$ readlink ./success.file
$ echo ${?}
0

Loading script...