728x90
반응형
리눅스 basename 명령어 사용법 정리
리눅스 basename 명령어는 파일 경로에서 디렉토리 경로를 제외하고 파일 이름(또는 파일명과 확장자)만 추출할 때 사용하는 유용한 명령어입니다.
1. 기본 문법 및 사용법
basename [경로/파일이름] [확장자]
파일 이름만 추출하기
- 경로가 포함된 파일 전체 경로에서 파일명만 깔끔하게 가져옵니다.
basename /etc/sysconfig/network-scripts/ifcfg-eth0
ifcfg-eth0
특정 확장자 제거하고 출력하기 (-s 옵션 또는 뒤에 확장자 지정)
- 파일명 뒤에 붙은 특정 확장자를 떼어내고 순수 파일 이름만 얻을 수 있습니다.
basename -s .conf /etc/nginx/nginx.conf
nginx
2. 실무 활용 예시
여러 파일의 확장자를 한 번에 떼어내고 싶을 때 (-a)
basename -a -s .log /var/log/syslog /var/log/auth.log
syslog
auth
728x90
반복문(For Loop)에서 파일 이름만 활용할 때
- 디렉토리 내의 모든 설정 파일에서 경로를 떼고 파일명만 처리할 때 유용합니다.
for file in /etc/systemd/system/*.service; do
echo $(basename "$file")
done
파일 시스템의 와일드카드(*.conf)를 직접 활용하면 ls 명령어나 복잡한 파이프 없이도 가장 깔끔하게 파일명만 추출
basename -s .conf *.conf
파이프라인 구조를 유지하고 싶을 때 (ls -1 + sed)
- 만약 기존처럼 파이프 형태를 유지하고 싶다면 상세 정보가 나오는 ls -l 대신 파일명만 한 줄씩 출력하는 ls -1을 사용하고 sed로 확장자를 제거하는 것이 훨씬 간결합니다.
ls -1 *.conf | sed 's/\.conf$//'
단일 awk로 합치기 (ls -1 + 단일 awk)
- 기존에 쓰시던 awk 방식을 유지하되 두 번 쓸 필요 없이 하나로 통합할 수 있습니다.
ls -1 *.conf | awk '{sub(/\.conf$/, ""); print}'
728x90
반응형
'리눅스' 카테고리의 다른 글
| 우분투 멀티아크(Multiarch) 설정 및 패키지 설치와 원복 방법 (0) | 2026.11.15 |
|---|---|
| NetBox 최신 버전으로 업그레이드하는 방법 (0) | 2026.10.29 |
| 우분투 26.04에서 Vim Visual Mode 진입 키 비활성화하기 (0) | 2026.08.24 |
| HP DL380 Gen9 펌웨어 업그레이드(Firmware Update)하는 방법 (0) | 2026.06.25 |
| 우분투 24.04 Fluent Bit 최신 패키지 설치 및 다운그레이드 방법 (0) | 2026.06.22 |