readlink — 심볼릭 링크 대상 확인
Linux / 파일 및 디스크 관리 / readlink.html
심볼릭 링크가 가리키는 경로를 출력하고 -f로 전체 경로를 해석합니다.
기본 정보
| 명령어 이름 | readlink |
|---|---|
| 한 줄 소개 | 심볼릭 링크가 가리키는 경로를 출력하고 -f로 전체 경로를 해석합니다. |
| 제공 | GNU coreutils (모든 Linux 배포판 기본 탑재) |
| 공식 문서 | https://man7.org/linux/man-pages/man1/readlink.1.html |
| 지원 운영체제 | Linux, macOS, BSD, WSL |
| 설치 여부 | 기본 탑재 (별도 설치 불필요) |
| 분류 | 리눅스 파일·디스크 관리 (태그: 심볼릭 링크, 경로, 링크) |
이 명령어는 무엇인가?
readlink는 심볼릭 링크 자체를 읽어 가리키는 대상을 출력합니다. -f를 주면 중간 링크까지 모두 해석한 절대 경로를 만듭니다.
realpath와 비슷하지만 readlink는 링크 대상 문자열을 그대로 보여 주는 동작이 기본이라는 차이가 있습니다.
어떤 문제를 해결하는가?
- 링크가 가리키는 대상을 확인할 때
- 스크립트에서 자기 자신의 실제 경로를 구할 때
- 링크 체인을 따라 최종 경로를 얻을 때
- 링크 여부를 판별할 때
주요 기능
링크 대상 출력
링크가 저장한 대상 문자열을 보여 줍니다.
- 활용 상황: 링크 구성을 확인할 때
- 얻는 결과: 대상 경로 문자열
- 제한 사항: 상대 링크는 상대 경로 그대로 나옵니다.
전체 경로 해석
-f 옵션으로 모든 링크를 따라 절대 경로를 만듭니다.
- 활용 상황: 스크립트 위치를 정확히 알 때
- 얻는 결과: 해석된 절대 경로
- 제한 사항: 마지막 요소가 없으면 실패합니다.
정규화만 수행
-m 옵션은 존재 여부와 무관하게 경로를 정규화합니다.
- 활용 상황: 아직 없는 파일의 경로를 다룰 때
- 얻는 결과: 정규화된 경로
- 제한 사항: 실제 링크 여부는 검사하지 않습니다.
설치 및 실행
설치 여부 확인
readlink --version
sudo apt install coreutils # Debian/Ubuntu sudo dnf install coreutils # Fedora
실제 사용 예제
링크 대상 확인
링크가 가리키는 경로를 출력합니다.
readlink /usr/bin/awk
스크립트 실제 경로
링크로 실행해도 실제 파일 경로를 얻습니다.
SCRIPT=$(readlink -f "$0")
echo "$SCRIPT"
경로 정규화
존재하지 않아도 경로를 정리합니다.
readlink -m ./build/../dist/app.tar.gz