개요
mmv는 'mass move'의 약자로, 여러 파일을 한 번에 처리하는 데 특화된 유틸리티입니다. `mv`가 개별 파일을 이동/이름 변경하는 데 주로 사용되는 것과 달리, mmv는 `*.jpeg`와 같은 와일드카드 패턴을 사용하여 원본 파일 집합을 정의하고, 이를 새로운 패턴으로 변환하여 대상 파일 집합을 생성합니다. 특히, `rename`이 이름 변경 기능에 집중하는 반면, `mmv`는 복사(`cp`), 링크(`ln`), 이동(`mv`) 기능까지 모두 통합하여 제공한다는 장점이 있습니다.
주요 특징
mmv 명령어의 주요 특징은 다음과 같습니다.
- 와일드카드 패턴을 사용하여 여러 파일을 일괄적으로 처리합니다.
- 파일을 이동(`mv`), 복사(`cp`), 링크(`ln`), 이름 변경하는 기능을 통합 제공합니다.
- `rename`과 유사하지만, 기능이 더 다양하고 사용법이 직관적입니다.
- 충돌이 발생할 경우 경고 메시지를 출력하여 실수를 방지합니다.
mmv와 rename의 차이점
mmv와 rename은 모두 파일 이름 일괄 변경에 사용되지만, 작동 방식에 차이가 있습니다.
- mmv: 와일드카드(`*`, `?`, `[ ]`)를 사용하여 패턴을 정의하고, 숫자(#1, #2)로 캡처된 부분을 재구성합니다. 복사/이동/링크 기능까지 제공합니다.
- rename: Perl 정규 표현식(`s/pattern/replacement/`)을 사용하여 이름을 변경하는 데 특화되어 있습니다.
주요 옵션
mmv 명령어는 파일 처리 방식과 옵션을 통해 세부적인 동작을 제어할 수 있습니다.
1) 파일 처리 옵션
2) 패턴 매칭
생성된 명령어:
명령어를 조합해 보세요.
설명:
`mmv` 명령어를 실행합니다.
위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.
사용 예시
mmv 명령어의 다양한 사용 예시를 통해 기능을 익혀보세요.
파일 확장자 변경
mmv '*.jpeg' '#1.jpg'
현재 디렉토리의 모든 `.jpeg` 확장자를 `.jpg`로 변경합니다.
파일 이름에 접두사 추가
mmv '*.txt' 'doc_#1.txt'
`doc_` 접두사를 모든 `.txt` 파일에 추가합니다.
디렉토리 이동
mmv '*.log' '/var/log/#1.log'
현재 디렉토리의 모든 `.log` 파일을 `/var/log` 디렉토리로 이동합니다.
대소문자 변경
mmv '*.*' '#l1.#l2'
파일명의 대문자를 소문자로 변경합니다.
변경될 결과 미리보기
mmv -n '*.bak' '#1.old'
실제 파일을 변경하지 않고, `.bak` 확장자를 `.old`로 변경했을 때의 결과를 미리 확인합니다.
설치
mmv는 대부분의 리눅스 배포판에 기본 포함되어 있지 않으므로, 아래 명령어를 사용하여 설치해야 합니다.
Debian/Ubuntu
sudo apt update
sudo apt install -y mmv
RHEL/CentOS/Fedora
sudo dnf install -y mmv
Arch Linux
sudo pacman -S mmv
팁 & 주의사항
mmv 명령어 사용 시 유의할 점들을 정리했습니다.
팁
- mmv의 패턴 문법은 셸의 와일드카드와 유사합니다. `*`는 모든 문자열, `?`는 한 문자를 의미합니다. `from_pattern`의 `*`는 `to_pattern`에서 `#1`, `#2`와 같이 숫자로 참조할 수 있습니다.
- 파일명이 충돌할 경우, `mmv`는 기본적으로 작업을 수행하지 않고 경고를 출력합니다. `-f` 옵션으로 충돌을 무시하고 강제로 덮어쓸 수 있지만, 데이터 손실에 주의해야 합니다.
- 정규 표현식과 와일드카드 패턴이 셸에 의해 확장되지 않도록, 반드시 패턴 문자열을 작은따옴표(`'`)로 묶어주어야 합니다.