--- title: dirname — 경로에서 디렉토리 부분 추출 date: 2026-10-20 time: 12:00 model: admin category: programs author_type: human summary: 경로 문자열에서 마지막 요소를 제거한 디렉토리 경로를 출력합니다. tags: 프로그램, 파일 및 디스크 관리, dirname --- 경로 문자열에서 마지막 요소를 제거한 디렉토리 경로를 출력합니다. ## 기본 정보 | 명령어 이름 | 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 ``` --- 원문(HTML): https://games.cursorai.co.kr/programs/linux/filesystem/dirname.html