파일 이름 변경은 특별히 고급 기술이 필요한 작업이 아닙니다. 소수의 파일만 다룰 때는 별도의 도구 없이도 충분히 처리할 수 있습니다. 하지만 작년 여름 휴가 사진 수백 장이 한 폴더에 담겨 있고 이 모든 파일의 이름을 바꿔야 한다면 이야기가 달라집니다. 이럴 때는 시간을 절약해 주는 몇 가지 요령이나 전용 앱을 활용하는 것이 현명합니다.
리눅스에서 파일 이름을 변경하는 방법은 크게 두 가지로 나뉩니다. 명령줄 인터페이스(CLI)를 이용하는 방법과 독립 실행형 애플리케이션을 사용하는 방법입니다. 리눅스 사용자라면 CLI가 얼마나 강력한지 이미 잘 알고 있을 텐데요, 실제로 파일 이름 변경에 활용할 수 있는 명령어도 여러 가지가 있습니다.
"mv" 명령어로 파일 이름 변경하기
리눅스에서 파일 이름을 변경하는 가장 간단한 방법은 mv(move의 약자) 명령어를 사용하는 것입니다. mv는 원래 파일과 폴더를 이동시키는 용도로 만들어졌지만, 파일 시스템은 이름 변경을 '한 이름에서 다른 이름으로 이동하는 작업'으로 해석하기 때문에 이름 변경에도 활용할 수 있습니다.
mv로 파일 이름을 변경할 때 사용하는 기본 문법은 다음과 같습니다.
mv (option) filename1.ext filename2.ext
"filename1.ext"는 원본 파일 이름, "filename2.ext"는 새로 지정할 파일 이름입니다.
폴더 이름 변경도 동일한 패턴으로 가능합니다. 다만 현재 작업 중인 폴더에 파일이 없다면 전체 경로를 함께 지정해야 합니다.
mv /home/user/Files/filename1.ext /home/user/Files/filename2.ext
mv 명령어를 사용하려면 해당 파일이 있는 폴더에 대한 쓰기 권한이 필요합니다. 시스템 파일이나 폴더의 이름을 변경하려면 root 권한이 필요하며, 이 경우 명령어 앞에 sudo를 붙여 실행하면 됩니다. 또한 -i(interactive) 옵션을 추가하면 실제로 이름이 적용되기 전에 사용자에게 확인을 요청하므로, 실수로 인한 파일 손실을 예방할 수 있습니다.
-v(verbose) 옵션을 사용하면 mv가 수행한 모든 변경 내역을 화면에 출력해 줍니다. 옵션은 mv 뒤, 파일 이름 앞에 위치시키면 됩니다.
"rename" 명령어 활용하기
rename 명령어는 mv보다 한 단계 고급 기능으로, 정규표현식(regular expression)에 대한 기본적인 이해가 필요합니다. 다소 어렵게 들릴 수 있지만 포기할 필요는 없습니다. 예제를 따라 하기만 해도 간단한 일괄 이름 변경까지 손쉽게 처리할 수 있습니다.
많은 리눅스 배포판에는 rename 명령어가 기본적으로 설치되어 있지 않습니다. 사용 중인 배포판에서 명령어를 찾을 수 없다면 먼저 설치해야 합니다.
데비안 계열 리눅스에서는 터미널에 다음을 입력합니다.
sudo apt install rename
아치 계열 리눅스에서는 다음과 같습니다.
sudo pacman -S rename
rename의 기본 문법은 다음과 같습니다.
rename (option) 's/oldname/newname/' file1.ext file24.ext
여기서 문자 "s"는 "substitute(대체)"를 의미하며 정규표현식의 핵심 부분입니다. 반드시 작은따옴표로 감싸야 합니다. 사용할 수 있는 옵션은 다음과 같습니다.
-v(verbose): 이름이 변경된 파일 목록과 새 이름을 출력합니다.-n("no action"): 테스트 모드 또는 시뮬레이션으로, 실제로 파일을 건드리지 않고 어떤 파일이 변경될지만 보여줍니다.-f: 원본 파일을 강제로 덮어씁니다.
rename 명령어는 와일드카드도 지원하므로 같은 유형의 여러 파일을 한 번에 변경할 수 있으며, 확장자 변경에도 활용됩니다. 예를 들어 다음 명령은 .jpeg 확장자를 가진 모든 파일을 .jpg로 바꿉니다.
rename 's/.jpeg/.jpg/' *
와일드카드 기호(*)는 폴더 안의 모든 파일이 대상임을 의미합니다.
정규표현식에는 자체 옵션(수정자)도 있습니다. "g"(global)는 표현식과 일치하는 모든 항목에 적용하고, "i"는 대소문자를 구분하지 않고 치환합니다. 이 옵션들은 표현식 끝, 닫는 작은따옴표 바로 앞에 위치하며 조합해서 사용할 수도 있습니다.
rename -n 's/DSC/photo/gi' *.jpg
위 명령은 "DSC", "dSC", "dsc" 등이 포함된 모든 .jpg 파일에서 해당 부분을 "photo"로 바꾸라는 의미입니다. 다만 "-n" 옵션이 붙어 있기 때문에 실제로 이름이 변경되지는 않고, 콘솔 창에 결과만 출력됩니다.
치환(substitution)만이 정규표현식이 할 수 있는 일의 전부는 아닙니다. "y"로 표시되는 변환(translation) 기능을 사용하면 더 복잡한 수준의 파일 이름 변형도 가능합니다. 가장 흔하게는 파일 이름의 대소문자를 바꿀 때 사용됩니다.
rename 'y/a-z/A-Z/' *.jpg
위 명령은 모든 .jpg 파일의 이름을 소문자에서 대문자로 변경합니다. 반대로 대문자를 소문자로 바꾸려면 정규표현식에서 oldname과 newname 위치만 서로 바꿔주면 됩니다.
rename 명령어 사용법은 결국 몇 가지 기본 패턴을 조합해 원하는 결과를 얻는 것으로 요약할 수 있습니다. -n 옵션을 활용하면 변경 결과를 미리 안전하게 확인할 수 있으므로 소중한 파일을 위험에 빠뜨릴 걱정이 없습니다.
Métamorphose2 – 강력한 GUI 일괄 변경 도구
Métamorphose는 크로스 플랫폼을 지원하는 파일·폴더 대량 이름 변경 프로그램입니다. CLI보다는 GUI 도구를 선호하는 사용자에게 매우 유용한 선택지로, Windows와 Linux 모두에서 사용할 수 있습니다.
시작하려면 공식 웹사이트에 접속해 사용 중인 배포판에 맞는 설치 파일을 내려받으면 됩니다. 데비안 계열 배포판용 deb 파일과 Fedora, Mandriva, SUSE용 RPM 패키지를 제공합니다.
앱을 실행하면 가장 먼저 "Picker" 탭이 열립니다. 이곳에서 일괄 이름 변경을 적용할 디렉터리를 선택합니다. 한 번의 작업에는 하나의 디렉터리만 지정할 수 있지만, 선택한 디렉터리 내부의 하위 폴더까지 재귀적으로 탐색할 수 있습니다.
디렉터리를 선택했다면 "Renamer" 탭으로 이동해 이름 변경 규칙을 설정합니다. 왼쪽 패널에서 원하는 작업을 고를 수 있습니다. 예를 들어 "insert"는 이름에 특정 문자열을 삽입하고, "length"는 파일 이름을 지정한 글자 수만큼 잘라냅니다. 그 외에도 "move text", "replace", "modify" 등 다양한 옵션이 제공되므로 거의 모든 상황에 맞춤 설정이 가능합니다.
설정을 마쳤으면 하단 패널 상단의 "Go" 버튼을 클릭해 이름 변경을 실행합니다. 변경 후 문제를 발견했다면 Undo 기능으로 모든 작업을 되돌릴 수 있으니 안심해도 됩니다.
pyRenamer – 초보자를 위한 쉬운 해결책
마지막으로 콘솔 명령어를 꺼리는 사용자들을 위한 해결책입니다. 마우스 클릭 몇 번으로 모든 작업을 처리할 수 있는 데스크톱 애플리케이션입니다. pyRenamer는 파이썬으로 작성된 강력한 파일 이름 변경 도구로, Ubuntu 및 파생 배포판 사용자는 저장소에서 간단히 설치할 수 있습니다.
sudo apt install pyrenamer
pyRenamer의 인터페이스는 네 부분으로 구성됩니다.
- 파일과 폴더를 선택하는 트리 뷰 파일 탐색기
- 변경 전후의 파일 이름을 보여주는 중앙 미리보기 패널
- 이름 변경 기준을 고르는 탭 형식의 컨트롤 영역
- 세부 옵션을 담은 사이드바
pyRenamer는 파일 이름에서 악센트나 중복 기호를 제거하고, 임의의 문자열을 다른 문자열로 교체하며, 이름을 대문자·소문자·문장 대소문자(sentence case)로 일괄 변환하고, 공백과 밑줄(_)을 자동으로 삽입하거나 삭제하는 기능을 제공합니다. 초보자에게 특히 좋은 점은 이 모든 작업을 탭 영역에서 선택하고, 메인 영역에서 미리보기를 확인한 뒤 Rename 버튼만 누르면 끝난다는 것입니다. 패턴을 직접 실험해 보고 싶다면 치트시트(cheatsheet)도 제공되므로 부담 없이 시작할 수 있습니다.
고급 사용자라면 멀티미디어 파일의 메타데이터를 읽어 이름을 변경하는 기능이 유용할 것입니다. 물론 일괄 변경이 필요 없는 경우에는 개별 파일 하나만 골라 수동으로 이름을 바꿀 수도 있습니다.
정리하자면, pyRenamer는 mv와 rename 명령어의 기능을 사용자 친화적인 GUI로 감싼 도구라고 할 수 있습니다. CLI 사용에 자신이 없는 분들에게 훌륭한 선택이 될 것입니다.
이제 리눅스에서 파일 이름을 변경하는 방법을 익혔습니다. 이어서 파일 권한을 재귀적으로 변경하는 방법이나, 느려진 리눅스 PC 진단법, Hosts 파일을 활용한 웹사이트 차단 및 허용 방법도 살펴보시길 추천합니다.