리눅스 basename, dirname 으로 경로와 파일 이름 추출하기


basename

basename 명령어를 사용하면 파일명이나 확장자를 추출할 수 있으며 파일 경로를 옵션없이 사용하면 확장자를 포함한 파일명을 추출합니다.


예로 /usr/lib64/libcrypt.so 라는 파일이 있을 경우 다음 명령은 libcrypt.so 을 출력합니다.

$ basename /usr/lib64/libcrypt.so

libcrypt.so


확장자를 제외한 파일명이 필요할 경우 제거할 확장자를 입력합니다.

$ basename /usr/lib64/libcrypt.so .so

libcrypt.so


또는 -s 옵션 뒤에 제거할 확장자를 명시해도 됩니다. -s 옵션은 사용할 경우 파일명 이전에 -s 와 확장자를 명시해 주어야 합니다.


다음 명령은 위와 동일한 결과를 출력합니다.

$ basename -s .so /usr/lib64/libcrypt.so

libcrypt.so


여러 개의 경로에서 파일명을 추출할 경우 -a 옵션과 함께 경로를 명시해 주면 됩니다.

$ basename -a path1/file1 path2/file2 path3/file3

file1
file2
file3

dirname

파일 경로에서 directory 를 추출하려면 dirname 명령어를 사용하면 됩니다.


다음 명령은 libcrypt.so 가 있는 디렉터리 경로를 표시합니다.

$ dirname /usr/lib64/libcrypt.so

/usr/lib64


같이 보기