> 파일 및 디렉토리 관리 > rename

rename: 여러 파일 이름 일괄 변경 도구

rename 명령어는 정규 표현식을 사용하여 여러 파일의 이름을 한 번에 변경하는 데 사용됩니다. `mv`와 달리 패턴 기반으로 파일명을 일괄적으로 수정할 때 매우 유용합니다.

개요

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` 옵션을 먼저 사용하여 결과를 확인하는 것이 좋습니다.
  • 파일명에 공백이 포함되어 있다면 따옴표(`"`)로 감싸서 인자로 전달해야 합니다.

관련 명령어

기능적으로 유사하거나 함께 자주쓰이는 명령어들입니다.


동일 카테고리 명령어