리눅스 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