심볼릭 링크가 연결되어 있는 원본 파일을 찾는 명령어이다.
readlink는 심볼릭링크인 path가 가르키는 원본의 파일 이름을 돌려준다. 알아낸 원본 파일을 이름은 buffer에 저장된다.
bufsize는 buffer의 저장 크기이다. 만약 buffer의 크기가 원본 파일의 이름을 담기에 충분히 크지 않다면 나머지 부분은 잘리게 된다.
readlink는 원본 파일의 완전한 경로를 가져온다.
사용법
# readlink -{Option} File
Example
# ls -al test.txt
lrwxrwxrwx 1 root root 13 Oct 25 14:38 test.txt -> /tmp/test.txt
# readlink -f test.txt
/tmp/test.txt
Options
-f (canonicalize)
- 주어진 이름의 모든 구성 요소에 있는 모든 심볼릭 링크를 따라가면서 정규화한다. 마지막 구성 요소를 제외하고 모두 존재해야한다.
-e (canonicalize-existing)
- 주어진 이름의 모든 구성 요소에 있는 모든 심볼릭 링크를 따라가며 정규화 한다. 마지막 구성 요소를 제외하고 모두 존재해야한다.
-m (canonicalize-missing)
- 구성 요소 존재에 대한 요구 사항없이 주어진 이름의 모든 구성 요소에 있는 모든 심볼릭 링크를 따라 정규화한다.
Return
성공할 경우 Buffer에 들어 있는 문자의 갯수가 반환되며 에러가 발생했다면 -1 Return되며 적당한 Error 코드가 설정된다.
Error
- ENOTDIR
경로가 디렉토리(:12)가 아니다.
- EINVAL
bufsize 가 양수가 아닐경우
- ENAMETOOLONG
경로이름이 너무 길경우
- ENOENT
명명된 파일이 존재하지 않을경우
- EACCES
path 에 접근하기 위한 디렉토리 권한이 없을경우
- EINVAL
파일이 심볼릭 링크가 아닐때
참고
- https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_readlink
- https://www.joinc.co.kr/w/man/2/readlink
'Linux' 카테고리의 다른 글
nf_conntrack_max (1) | 2020.10.25 |
---|---|
Linux ulimit (0) | 2019.02.20 |
Linux Namespace (0) | 2018.12.17 |
Linux Service 만들기 (CentOS7) (0) | 2018.11.14 |
lvm의 기본 개념 (0) | 2018.10.12 |