리눅스 쉘 스크립트 실전 예제 Part 4: 파일 이름 및 확장자 정리
복잡한 파일 이름, 일관되지 않은 확장자… 쉘 스크립트로 정리하고 자동화하세요.
1. 파일 이름의 공백 제거 및 언더스코어(_)로 치환
용도: 공백이 포함된 파일명을 스크립트, 파이프라인 등에서 사용할 수 있도록 안전하게 변경합니다.
for f in *\ *; do
mv "$f" "${f// /_}"
done
설명:
- *\ *: 공백이 포함된 파일을 대상으로 합니다.
- ${f// /_}: 모든 공백 문자를 언더스코어(_)로 치환합니다.
2. 파일 이름 끝에 현재 날짜 추가
용도: 버전 구분이나 추적을 위해 파일 이름 끝에 날짜(YYYYMMDD)를 자동으로 추가합니다.
for f in *.txt; do
mv "$f" "${f%.txt}_$(date +%Y%m%d).txt"
done
설명:
- ${f%.txt}: 확장자를 제외한 파일 이름을 추출합니다.
- $(date +%Y%m%d): 오늘 날짜를 붙입니다.
3. 파일 확장자 일괄 변경 (.TXT → .txt)
용도: 대소문자 혼용 또는 일관성 없는 확장자를 정리할 수 있습니다.
for f in *.TXT; do
mv "$f" "${f%.TXT}.txt"
done
설명:
- ${f%.TXT}: 기존 확장자를 제거하고
- .txt: 소문자 확장자를 새로 추가합니다.
4. 파일 이름 대소문자 통일 (대문자 → 소문자)
용도: 윈도우/리눅스 간 파일 이름 충돌 방지를 위해 모든 파일명을 소문자로 통일합니다.
for f in *; do
mv "$f" "$(echo "$f" | tr 'A-Z' 'a-z')"
done
설명:
- tr: 파일 이름 내 문자 치환을 수행합니다.
- 사용 전 동일한 이름이 존재하지 않는지 중복 여부를 꼭 확인하세요.
5. 파일 접두사 또는 접미사 자동 추가
용도: 여러 파일에 공통 접두어나 접미어를 붙여 정리할 수 있습니다. 예: img001.jpg → photo_img001.jpg
for f in *.jpg; do
mv "$f" "photo_$f"
done
설명:
- photo_를 접두사로 추가하며, 접미사를 붙일 경우 ${f%.jpg}_suffix.jpg와 같이 구성할 수 있습니다.
마무리
파일 이름을 변경하는 스크립트는 되돌릴 수 없기 때문에 반드시 사전 테스트가 필요합니다. 특히 mv 명령어를 이용한 일괄 변경은 덮어쓰기 위험이 있으므로 echo 또는 백업 후 실행하시길 권장합니다.
실무에 바로 적용할 수 있는 리눅스 쉘 스크립트 예제, 스마트베이에서 함께합니다.
비즈니스 효율을 높이는 스마트한 IT 솔루션을 제공합니다.
웹사이트 : www.esmartbay.co.kr
E-mail : smartbay.svc@gmail.com
카카오톡 : 바로 상담하기
'서버 & 리눅스 실무팁' 카테고리의 다른 글
| 리눅스 쉘 스크립트 실전 예제 Part 6: 권한 및 보안 관리 자동화 (0) | 2025.06.14 |
|---|---|
| 리눅스 쉘 스크립트 실전 예제 Part 5: 디스크 용량과 감시 자동화 (0) | 2025.06.14 |
| 리눅스 쉘 스크립트 실전 예제 Part 3: 백업 및 압축 자동화 (1) | 2025.06.14 |
| 리눅스 쉘 스크립트 실전 예제 Part 2: 자동 삭제 스크립트 (0) | 2025.06.14 |
| 리눅스 쉘 스크립트 실전 예제 Part 1: 파일 탐색과 정렬 (0) | 2025.06.14 |