English

basename — 경로에서 파일 이름 추출

Linux / 파일 및 디스크 관리 / basename.html

파일 및 디스크 관리원문등록 2026-10-20T09:00:00+09:00

경로의 마지막 요소만 남기고 선택적으로 확장자를 제거합니다.

기본 정보

명령어 이름basename
한 줄 소개경로의 마지막 요소만 남기고 선택적으로 확장자를 제거합니다.
제공GNU coreutils (모든 Linux 배포판 기본 탑재)
공식 문서https://man7.org/linux/man-pages/man1/basename.1.html
지원 운영체제Linux, macOS, BSD, WSL
설치 여부기본 탑재 (별도 설치 불필요)
분류리눅스 파일·디스크 관리 (태그: 경로, 파일명, 스크립트)

이 명령어는 무엇인가?

basename은 경로에서 파일 이름만 추출합니다. 두 번째 인자를 주면 그 접미사까지 제거합니다.

확장자를 떼고 다른 확장자를 붙이거나, 파일 이름을 로그 메시지에 넣을 때 유용합니다.

어떤 문제를 해결하는가?

  • 파일 경로에서 이름만 필요할 때
  • 확장자를 바꿔 다른 형식으로 저장할 때
  • 로그나 메시지에 파일 이름을 넣을 때
  • 반복문에서 대상 이름을 뽑아낼 때

주요 기능

파일 이름 추출

경로의 마지막 요소만 출력합니다.

  • 활용 상황: 경로에서 이름만 쓸 때
  • 얻는 결과: 확장자를 포함한 파일 이름
  • 제한 사항: 디렉토리 경로를 주면 디렉토리 이름이 나옵니다.

확장자 제거

두 번째 인자로 접미사를 제거합니다.

  • 활용 상황: 이름만으로 다른 파일을 만들 때
  • 얻는 결과: 접미사가 빠진 이름
  • 제한 사항: 정확히 일치하는 접미사만 제거합니다.

여러 인자 처리

-a 옵션으로 여러 경로를 처리합니다.

  • 활용 상황: 일괄 변환 스크립트에서
  • 얻는 결과: 경로별 파일 이름
  • 제한 사항: -a는 GNU 확장이라 다른 유닉스에서 없을 수 있습니다.

설치 및 실행

설치 여부 확인

basename --version

sudo apt install coreutils # Debian/Ubuntu sudo dnf install coreutils # Fedora

실제 사용 예제

파일 이름 추출

경로에서 파일 이름만 얻습니다.

basename /var/log/nginx/access.log

확장자 교체

이름만 남긴 뒤 새 확장자를 붙입니다.

name=$(basename report.csv .csv)
echo "$name.md"

여러 경로 처리

두 경로의 이름을 각각 출력합니다.

basename -a /etc/hosts /etc/fstab