概述
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 默认不包含在大多数 Linux 发行版中,因此需要使用以下命令进行安装。
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 的模式语法类似于 shell 的通配符。
*表示任意字符串,?表示单个字符。from_pattern中的*可以在to_pattern中通过#1、#2等数字进行引用。 - 如果文件名冲突,
mmv默认不执行操作并输出警告。可以使用-f选项强制覆盖冲突,但请注意数据丢失的风险。 - 为防止正则表达式和通配符模式被 shell 扩展,必须将模式字符串用单引号 (
') 括起来。