realpath — 경로를 실제 절대 경로로 변환
Linux / 파일 및 디스크 관리 / realpath.html
심볼릭 링크와 .., . 을 모두 해석해 실제 절대 경로를 출력합니다.
기본 정보
| 명령어 이름 | realpath |
|---|---|
| 한 줄 소개 | 심볼릭 링크와 .., . 을 모두 해석해 실제 절대 경로를 출력합니다. |
| 제공 | GNU coreutils (모든 Linux 배포판 기본 탑재) |
| 공식 문서 | https://man7.org/linux/man-pages/man1/realpath.1.html |
| 지원 운영체제 | Linux, macOS, BSD, WSL |
| 설치 여부 | 기본 탑재 (별도 설치 불필요) |
| 분류 | 리눅스 파일·디스크 관리 (태그: 경로, 심볼릭 링크, 절대 경로) |
이 명령어는 무엇인가?
realpath는 상대 경로를 절대 경로로 바꾸고 심볼릭 링크를 실제 대상까지 따라갑니다. ..과 .도 정규화합니다.
스크립트에서 경로를 비교하거나 보안 검사로 허용 디렉토리 안에 있는지 확인할 때 신뢰할 수 있는 기준이 됩니다.
어떤 문제를 해결하는가?
- 상대 경로를 절대 경로로 바꿔야 할 때
- 심볼릭 링크의 실제 대상을 알고 싶을 때
- 경로 비교를 정확히 하고 싶을 때
- 접근 가능한 디렉토리인지 검증할 때
주요 기능
절대 경로 변환
상대 경로를 현재 위치 기준 절대 경로로 출력합니다.
- 활용 상황: 로그나 설정에 절대 경로를 남길 때
- 얻는 결과: 정규화된 절대 경로
- 제한 사항: 존재하지 않는 마지막 요소는 그대로 붙습니다.
심볼릭 링크 해석
링크를 따라 실제 파일 경로를 보여 줍니다.
- 활용 상황: 링크가 어디를 가리키는지 확인할 때
- 얻는 결과: 실제 대상의 경로
- 제한 사항: 중간 디렉토리 링크도 모두 해석합니다.
존재 검사
-e 옵션은 모든 요소가 존재해야 성공합니다.
- 활용 상황: 스크립트에서 경로 유효성을 검사할 때
- 얻는 결과: 성공·실패 종료 코드
- 제한 사항: 권한 없는 경로는 실패로 처리될 수 있습니다.
설치 및 실행
설치 여부 확인
realpath --version
sudo apt install coreutils # Debian/Ubuntu sudo dnf install coreutils # Fedora
실제 사용 예제
절대 경로 얻기
상대 경로를 절대 경로로 바꿉니다.
realpath ./logs/../data/app.log
심볼릭 링크 대상 확인
링크가 가리키는 실제 경로를 확인합니다.
realpath /usr/bin/python3
존재 검사
경로가 실제로 존재하는지 확인합니다.
if realpath -e /etc/nginx/nginx.conf >/dev/null; then echo ok; fi