특정 조건을 가진 폴더의 파일 이름 바꾸기 (bash, shell, Ubuntu)
사용 환경:
- 운영 체제: Ubuntu (bash 또는 shell 사용 가능)
사전 준비:
- 폴더 경로 및 조건 명확히 정의
- 원하는 새로운 파일 이름 형식 정의
방법:
- find 명령어 사용:
find [폴더 경로] -type f -exec rename 's/[조건]/[새로운 이름 형식]/g' {} \;
옵션 설명:
-type f
: 파일만 찾도록 설정-exec
: 'rename' 명령어 실행s/[조건]/[새로운 이름 형식]/g
: 'rename' 명령어 옵션s
: 치환 명령[조건]
: 찾을 문자열 (정규 표현식 사용 가능)[새로운 이름 형식]
: 바꿀 문자열g
: 모든 일치하는 문자열을 바꿈
{}
: find 명령어가 찾은 파일 이름\;
: 명령어 종료
예시:
find /home/user/data -type f -exec rename 's/image_\d+/new_image_\&/g' {} \;
설명:
/home/user/data
폴더 내 모든 파일image_\d+
패턴에 일치하는 파일 이름 (숫자가 포함된 "image_" 형식)new_image_\&
형식으로 변경 (숫자 부분은 그대로 유지)
주의:
- 'rename' 명령어는 파일 이름을 실제로 변경합니다. 실행 전에 조건과 형식을 꼼꼼하게 확인하십시오.
- 정규 표현식 사용 시 문법 오류에 주의하십시오.
for 루프 사용:
for file in /home/user/data/*; do
if [[ $file =~ image_\d+ ]]; then
new_name="new_image_$(echo $file | sed 's/image_\d+/\&/g')"
mv "$file" "$new_name"
fi
done
image_\d+
패턴에 일치하는 파일 이름만 처리new_name
변수에 새로운 파일 이름 저장mv
명령어 사용하여 파일 이름 변경
스크립트 작성:
위 방법들을 조합하여 스크립트 파일 작성 가능
추가 정보:
참고 자료:
팁:
- 테스트 목적으로 먼저 복사본을 만들어 작업하는 것을 추천합니다.
- 정규 표현식 사용에 어려움이 있다면 온라인 튜토리얼을 참고하십시오.
예제 코드
find /home/user/data -type f -exec rename 's/image_\d+/new_image_\&/g' {} \;
for file in /home/user/data/*; do
if [[ $file =~ image_\d+ ]]; then
new_name="new_image_$(echo $file | sed 's/image_\d+/\&/g')"
mv "$file" "$new_name"
fi
done
대체 방법
- Nautilus 파일 관리자를 열고 대상 폴더로 이동합니다.
- Ctrl+A를 눌러 모든 파일을 선택합니다.
- "F2" 키를 눌러 이름 바꾸기 모드를 활성화합니다.
- 원하는 새로운 이름 형식을 입력합니다.
- Enter 키를 눌러 변경 사항을 적용합니다.
GUI 기반 파일 이름 변경 도구 사용:
- Thunar Bulk Rename, ReNamer 등 다양한 GUI 도구 사용 가능
- 대부분의 도구는 직관적인 인터페이스를 제공하여 조건 설정 및 새로운 이름 형식 지정이 용이
온라인 파일 이름 변경 서비스 사용:
- 웹 브라우저에서 접근 가능하여 별도의 프로그램 설치 불필요
- GUI 도구나 온라인 서비스 사용 시 보안 문제에 유의해야 합니다.
- 민감한 정보가 포함된 파일은 온라인 서비스 사용을 피하는 것이 좋습니다.
- 작업에 가장 적합한 방법을 선택하십시오.
- 복잡한 조건 설정이 필요하거나 대량의 파일을 처리해야 하는 경우 스크립트 작성 방법을 고려하십시오.
추가 정보
bash shell ubuntu