개요
rename은 대량의 파일 이름을 규칙에 따라 변경할 때 사용하는 강력한 명령어입니다. 이 명령어는 `s/old_pattern/new_pattern/`와 같은 Perl 정규 표현식 구문을 사용하여 파일명의 특정 문자열을 찾아 다른 문자열로 바꿀 수 있습니다. 예를 들어, 모든 `.jpeg` 확장자를 `.jpg`로 바꾸거나, 파일명에 포함된 공백을 밑줄(`_`)로 변경하는 등의 작업을 손쉽게 자동화할 수 있습니다.
주요 특징
rename 명령어의 주요 특징은 다음과 같습니다.
- 여러 파일의 이름을 한 번에 변경합니다.
- 정규 표현식 기반의 강력한 패턴 치환 기능을 제공합니다.
- `mv` 명령어가 하나씩 변경하는 것과 달리, 일괄 작업에 최적화되어 있습니다.
- 변경될 결과를 미리 확인할 수 있는 `dry run` 모드를 지원하여 실수를 방지할 수 있습니다.
rename과 mv의 차이점
rename과 mv는 모두 파일 이름 변경에 사용되지만, 기능과 목적에서 차이가 있습니다.
- rename: 여러 파일의 이름을 패턴 기반으로 일괄 변경하는 데 특화되어 있습니다.
- mv: 단일 파일이나 디렉토리의 이름을 변경하거나 이동하는 데 사용됩니다. 여러 파일을 변경하려면 스크립트가 필요합니다.
주요 옵션
자주 사용하는 rename 명령어의 옵션을 목적에 따라 그룹화했습니다.
1) 일괄 변경
2) 도움말
생성된 명령어:
명령어를 조합해 보세요.
설명:
`rename` 명령어를 실행합니다.
위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.
사용 예시
rename 명령어의 다양한 사용 예시를 통해 기능을 익혀보세요.
파일 확장자 변경
rename 's/\.jpeg$/.jpg/' *.jpeg
현재 디렉토리의 모든 `.jpeg` 확장자를 `.jpg`로 변경합니다.
파일명의 특정 문자열 변경
rename 's/^image_/photo_/' *.jpeg
`image_`로 시작하는 모든 파일명에서 `image_`를 `photo_`로 변경합니다.
공백을 밑줄로 변경
rename 's/ /_/g' *
파일명에 있는 모든 공백(` `)을 밑줄(`_`)로 변경합니다.
대문자를 소문자로 변환
rename 'y/A-Z/a-z/' *
모든 파일명의 대문자를 소문자로 변환합니다.
변경될 결과 미리보기
rename -n 's/.html/.txt/' *.html
실제 파일을 변경하지 않고, `.html` 확장자를 `.txt`로 변경했을 때의 결과를 미리 확인합니다.
설치
rename은 모든 리눅스 배포판에 기본 포함되어 있지 않으므로, 아래 명령어로 설치해야 합니다. 일부 배포판에서는 `perl-rename` 또는 `prename`으로 패키지명이 다를 수 있습니다.
Debian/Ubuntu
sudo apt update
sudo apt install rename
RHEL/CentOS/Fedora
sudo dnf install prename
Arch Linux
sudo pacman -S perl-rename
팁 & 주의사항
rename 명령어 사용 시 유의할 점들을 정리했습니다.
팁
- 정규 표현식에서 점(`.`)은 모든 문자를 의미하므로, 확장자를 변경할 때는 `\.jpeg`와 같이 역슬래시(`\`)를 사용해 이스케이프해야 합니다.
- rename은 강력한 도구이므로, 실수를 방지하기 위해 항상 `-n` 옵션을 먼저 사용하여 결과를 확인하는 것이 좋습니다.
- 파일명에 공백이 포함되어 있다면 따옴표(`"`)로 감싸서 인자로 전달해야 합니다.