English

dirname — 경로에서 디렉토리 부분 추출

Linux / 파일 및 디스크 관리 / dirname.html

파일 및 디스크 관리원문등록 2026-10-20T09:00:00+09:00

경로 문자열에서 마지막 요소를 제거한 디렉토리 경로를 출력합니다.

기본 정보

명령어 이름dirname
한 줄 소개경로 문자열에서 마지막 요소를 제거한 디렉토리 경로를 출력합니다.
제공GNU coreutils (모든 Linux 배포판 기본 탑재)
공식 문서https://man7.org/linux/man-pages/man1/dirname.1.html
지원 운영체제Linux, macOS, BSD, WSL
설치 여부기본 탑재 (별도 설치 불필요)
분류리눅스 파일·디스크 관리 (태그: 경로, 문자열, 스크립트)

이 명령어는 무엇인가?

dirname은 경로 문자열을 조작해 마지막 요소를 떼어 냅니다. 파일이 실제로 존재하는지 확인하지 않고 순수하게 문자열만 처리합니다.

스크립트에서 자신의 위치를 기준으로 다른 파일을 찾을 때 basename과 함께 자주 사용합니다.

어떤 문제를 해결하는가?

  • 스크립트에서 실행 위치를 기준으로 경로를 만들 때
  • 파일 경로에서 상위 디렉토리만 필요할 때
  • 경로를 조각내어 다른 명령에 넘길 때
  • 심볼릭 링크 없이 순수 문자열 처리가 필요할 때

주요 기능

경로 분리

마지막 요소를 제거한 경로를 출력합니다.

  • 활용 상황: 설정 파일 경로에서 디렉토리를 얻을 때
  • 얻는 결과: 상위 디렉토리 문자열
  • 제한 사항: 실제 디렉토리 존재 여부는 확인하지 않습니다.

스크립트 자기 위치 찾기

$0와 조합해 스크립트 디렉토리를 구합니다.

  • 활용 상황: 스크립트가 참조 파일을 찾을 때
  • 얻는 결과: 스크립트 기준 경로
  • 제한 사항: 심볼릭 링크로 실행하면 링크 위치가 나옵니다.

여러 인자 처리

인자를 여러 개 주면 각각 한 줄씩 출력합니다.

  • 활용 상황: 여러 경로를 일괄 처리할 때
  • 얻는 결과: 경로별 결과
  • 제한 사항: 결과 순서는 입력 순서를 따릅니다.

설치 및 실행

설치 여부 확인

dirname --version

sudo apt install coreutils # Debian/Ubuntu sudo dnf install coreutils # Fedora

실제 사용 예제

경로 분리

파일 경로의 디렉토리 부분만 얻습니다.

dirname /var/log/nginx/access.log

스크립트 디렉토리

스크립트가 있는 디렉토리로 이동합니다.

SCRIPT_DIR=$(dirname "$(readlink -f "$0")")
cd "$SCRIPT_DIR"

여러 경로

두 경로를 각각 처리합니다.

dirname /etc/hosts /var/log/syslog