> 文件与目录管理 > mmv

mmv: 按模式移动/复制/链接多个文件

mmv 命令是一个用于根据特定模式移动、复制、链接或重命名多个文件的工具。它支持类似于正则表达式的通配符模式匹配,对于批量处理大量文件非常有用。

概述

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 扩展,必须将模式字符串用单引号 (`'`) 括起来。

相关命令

功能上相似或经常一起使用的命令。


相同类别命令