dirname은 표준 유닉스 컴퓨터 프로그램이다. dirname에 경로 이름을 지정하면 마지막 슬래시('/') 문자로 시작되는 모든 글자들을 지우고 결과를 반환한다. dirname은 SUS에 기술되어 있으며 주로 셸 스크립트에 쓰인다.

dirname
운영 체제유닉스, 유닉스 계열
종류명령어
라이선스GNU GPL v3

사용법

편집

dirname에 대한 SUS의 용법은 다음과 같다.

dirname 문자열
문자열
경로 이름

dirname은 슬래시 뒤의 부분은 모두 무시하고 경로 이름으로부터 디렉터리 경로 이름만은 반환한다.

$ dirname /home/martin/docs/base.wiki
/home/martin/docs

$ dirname /home/martin/docs/
/home/martin

$ dirname base.wiki
.

$ dirname /
/

성능

편집

dirname이 오직 하나의 피연산자만을 받기 때문에 셸 스크립트의 내부 루프 안에 사용하면 성능에 악영향을 미칠 수 있다. 다음과 같은 경우

 while read file; do
     dirname "$file"
 done < some-input

입력의 각 줄마다 별개의 프로세스 호출을 일으킨다. 이러한 까닭에 다음과 같이 대체할 수 있고

 echo "${file%/*}";

상대 경로 이름도 다루어야 한다면 다음과 같이 변경할 수 있다.

 if [ -n "${file##*/*}" ]; then
     echo "."
 else
     echo "${file%/*}";
 fi

참고로, 위의 방식들은 dirname과는 다르게 슬래시를 처리한다.

같이 보기

편집

외부 링크

편집