개요
'basename' 명령어는 파일 경로에서 디렉토리 부분을 제거하고 파일명(또는 마지막 디렉토리명)만 추출하는 데 사용됩니다. 이는 셸 스크립트에서 파일 경로를 조작할 때 매우 유용하며, 특히 파일의 이름만 필요할 때 활용됩니다.
주요 기능
- 파일 경로에서 파일명 추출
- 선택적으로 파일명에서 지정된 접미사 제거
- 여러 경로에 대한 일괄 처리 기능 제공
주요 옵션
다음은 표준 'basename' 명령어에서 사용 가능한 주요 옵션들입니다.
기본 동작 및 필터링
생성된 명령어:
명령어를 조합해 보세요.
설명:
`basename-u` 명령어를 실행합니다.
위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.
사용 예시
다음은 표준 'basename' 명령어의 실제 사용 예시입니다.
기본 파일명 추출
basename /home/user/documents/report.pdf
주어진 경로에서 파일명만 추출합니다.
접미사 제거
basename /var/log/syslog.log .log
파일명에서 특정 접미사를 제거합니다.
여러 파일명 추출
basename -a /etc/hosts /usr/bin/ls /tmp/test.txt
여러 경로에서 파일명을 한 번에 추출합니다.
널(NUL) 종료와 xargs 활용
find . -maxdepth 1 -type f -print0 | xargs -0 basename -z
널 문자로 종료된 출력을 `xargs -0`와 함께 사용하여 안전하게 처리합니다.
팁 & 주의사항
basename-u 옵션에 대한 설명
명령어 이름에 포함된 '-u'는 표준 'basename' 명령어의 유효한 옵션이 아닙니다. GNU Coreutils의 'basename' 명령어에는 '-u' 옵션이 존재하지 않으며, 이를 사용하면 'basename: invalid option -- 'u''와 같은 오류 메시지가 출력될 수 있습니다. 만약 특정 스크립트나 환경에서 '-u'가 사용된다면, 이는 'basename' 명령어가 아닌 다른 사용자 정의 스크립트나 별칭일 가능성이 높습니다.
dirname과의 조합
'basename'은 파일명만 추출하고, 'dirname'은 디렉토리 경로만 추출합니다. 이 두 명령어를 함께 사용하면 파일 경로를 디렉토리와 파일명으로 완벽하게 분리할 수 있어 셸 스크립트 작성 시 매우 유용합니다.
- 예시: path="/home/user/documents/report.pdf" echo "디렉토리: $(dirname "$path")" echo "파일명: $(basename "$path")"