dirname

위키백과, 우리 모두의 백과사전.

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

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

사용법[편집]

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과는 다르게 슬래시를 처리한다.

같이 보기[편집]

외부 링크[편집]