개요
basename은 파일 경로 문자열에서 마지막 슬래시(/) 이후의 문자열을 반환합니다. 이는 파일명이나 디렉토리명을 추출하는 데 사용되며, 선택적으로 지정된 접미사를 제거할 수 있습니다. `basename-x`라는 별도의 명령어는 존재하지 않으며, `basename` 명령어의 두 번째 인자인 SUFFIX를 통해 확장자 제거 기능을 수행합니다.
주요 기능
- 파일 경로에서 파일명 추출
- 지정된 접미사(확장자) 제거
- 셸 스크립트에서 경로 처리 및 변수 할당
주요 기능 및 인자
basename은 대부분 인자를 통해 기능을 수행하며, `-x`와 같은 특정 옵션은 존재하지 않습니다. 대신, 두 번째 인자로 접미사를 지정하여 확장자를 제거할 수 있습니다.
기본 인자
생성된 명령어:
명령어를 조합해 보세요.
설명:
`basename` 명령어를 실행합니다.
위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.
사용 예시
basename 명령의 다양한 활용 예시입니다.
기본 파일명 추출
basename /home/user/document.txt
주어진 경로에서 파일명만 추출합니다.
확장자 제거
basename /home/user/report.pdf .pdf
파일명에서 특정 확장자를 제거합니다. 두 번째 인자로 제거할 접미사를 지정합니다.
여러 확장자 제거
basename /home/user/archive.tar.gz .gz
.tar.gz와 같이 여러 확장자가 있는 경우, 지정된 접미사만 제거됩니다.
디렉토리 경로 처리
basename /home/user/documents/
경로가 디렉토리로 끝나는 경우, 마지막 디렉토리 이름을 반환합니다.
셸 변수와 함께 사용
FILE_PATH="/var/log/syslog.log"
BASENAME=$(basename "$FILE_PATH")
EXTENSION_REMOVED=$(basename "$FILE_PATH" ".log")
echo "원본 경로: $FILE_PATH"
echo "파일명: $BASENAME"
echo "확장자 제거: $EXTENSION_REMOVED"
셸 스크립트에서 변수에 저장된 경로를 처리할 때 유용합니다.
팁 & 주의사항
basename 사용 시 유의할 점과 활용 팁입니다.
- 슬래시 처리: 경로의 마지막에 슬래시(/)가 있어도 basename은 이를 무시하고 마지막 디렉토리 이름을 반환합니다. 예: `basename /dir/` -> `dir`
- 접미사 일치: 접미사는 NAME의 끝에 정확히 일치해야 제거됩니다. `basename file.txt .tx`는 `file.txt`를 반환합니다. 부분 일치는 적용되지 않습니다.
- 여러 확장자: `.tar.gz`와 같은 여러 확장자를 제거하려면, 가장 바깥쪽 확장자부터 지정해야 합니다. `basename archive.tar.gz .gz`는 `archive.tar`를 반환합니다. `basename archive.tar.gz .tar.gz`는 `archive`를 반환합니다.
- `-x` 옵션 부재: `basename` 명령어에는 `-x` 옵션이 존재하지 않습니다. 대신 두 번째 인자로 제거할 접미사를 직접 지정하여 확장자 제거 기능을 활용할 수 있습니다. 이는 `basename-x`라는 표현이 의도하는 바와 같습니다.