在文件管理过程中,批量重命名文件可能是一个繁琐的任务。mmv 是一个功能强大的工具,可以帮助我们实现高效、灵活的文件重命名。本文将从 mmv 的安装开始,逐步讲解如何利用它进行高级文件重命名,配以详细示例,帮助你快速掌握这一工具。
什么是mmv?
mmv 是一种命令行工具,专为批量移动、复制、链接或重命名文件而设计。它支持复杂的模式匹配和替换操作,可以轻松完成大批量文件名修改的任务。
mmv 的主要特点包括:
- 1. 强大的模式匹配功能:支持通配符和占位符,方便批量操作。
- 2. 支持多种操作:可以选择移动、复制、硬链接或符号链接。
- 3. 高效性:在大批量文件操作中表现出色。
- 4. 保护机制:在实际操作之前提供预览,避免误操作。
mmv的安装与基本用法
在大多数 Linux 发行版上,可以通过包管理器安装 mmv。例如:
sudo apt update
sudo apt install mmv
如果使用的是 macOS,可以通过 Homebrew 安装:
brew install mmv
安装完成后,可以通过运行以下命令验证:
mmv --version
mmv的基本命令结构
mmv 的命令格式如下:
mmv [选项] <来源模式> <目标模式>
参数说明:
- o <来源模式>:匹配要操作的文件名,支持通配符(* 和 ?)。
- o <目标模式>:定义新文件名的格式,支持占位符。
mmv的核心功能详解
1. 通配符与占位符
- o *:匹配任意长度的字符。
- o ?:匹配单个字符。
- o #1, #2...:占位符,用于捕获来源模式中匹配的内容。
例如,假设当前目录下有以下文件:
file1.txt
file2.txt
file3.txt
执行以下命令:
mmv "file*.txt" "document#1.txt"
结果是:
file1.txt -> document1.txt
file2.txt -> document2.txt
file3.txt -> document3.txt
2. 更改文件扩展名
如果需要将所有 .txt 文件改为 .md,可以使用以下命令:
mmv "*.txt" "#1.md"
这里,#1 表示匹配的文件名主体(去掉扩展名)。
3. 批量添加前缀或后缀
- o 添加前缀:
mmv "*.txt" "prefix_#1.txt"
这会将所有 .txt 文件的名称前添加 prefix_。
- o 添加后缀:
mmv "*.txt" "#1_suffix.txt"
这会为所有 .txt 文件的名称添加后缀 suffix。
4. 按数字序列重命名
如果想将文件按数字顺序命名,可以使用以下方式:
假设当前目录有以下文件:
image_a.jpg
image_b.jpg
image_c.jpg
运行命令:
mmv "*.jpg" "#1_#n.jpg"
结果是:
image_a.jpg -> image_1.jpg
image_b.jpg -> image_2.jpg
image_c.jpg -> image_3.jpg
5. 结合日期重命名
假如你需要在文件名中添加当前日期,可以结合 shell 命令:
mmv "*.log" "$(date +%Y%m%d)_#1.log"
例如,2025 年 1 月 23 日运行时,example.log 会被重命名为 20250123_example.log。
进阶功能
1. 批量处理多级目录
mmv 默认只处理当前目录下的文件。如果需要递归处理子目录中的文件,可以结合 find 命令:
find . -type f -name "*.txt" -exec mmv "{}" "{#1.md}" \;
2. 解决文件名冲突
如果目标文件名与已有文件冲突,mmv 会直接报错,避免数据被覆盖。可以通过修改目标模式来避免冲突。例如:
mmv "*.txt" "#1_new.txt"
使用mmv的注意事项
- 1. 预览操作:建议在正式执行之前添加 -n 选项以查看操作结果。例如:
mmv -n "*.txt" "#1_backup.txt"
这会显示将执行的操作而不真正重命名文件。
- 2. 备份数据:在批量操作前,最好备份重要文件,防止误操作。
- 3. 避免复杂模式嵌套:复杂模式可能导致意外结果,建议先在小范围内测试。
替代方案与扩展工具
除了 mmv,以下工具也能完成类似任务:
- 1. rename:另一个强大的重命名工具,支持正则表达式。
- 2. pyRenamer:基于图形界面的工具,适合不熟悉命令行的用户。
- 3. 自定义脚本:利用 Python 或 Shell 脚本,定制批量重命名逻辑。
赶快试试 mmv,让你的文件管理变得更高效吧!