
在Linux中,重命名文件是我们经常进行的操作,无论是为了更好地整理文件,还是批量重命名多个文件。
虽然基本的工具如`mv`和`rename`已经可以完成一些简单的任务,但有一个更为强大的工具——`mmv`,它能让重命名过程变得更加简便,特别是在需要批量重命名文件时。
作为一名有经验的Linux用户,我发现`mmv`是一个强大的批量重命名工具。在这篇文章中,我将向你展示如何有效地使用它。
`mmv`代表“multiple move”(多重移动),它是一个命令行工具,允许你同时重命名、移动和复制多个文件。与`mv`命令只能逐个重命名文件不同,`mmv`的设计目标就是处理批量重命名,使用起来更加便捷。
安装mmv
根据你使用的Linux发行版,执行以下命令来安装`mmv`:
– Debian、Ubuntu、Mint:
sudo apt install mmv
– RHEL/CentOS/Fedora、Rocky/AlmaLinux:
sudo yum install mmv
– Gentoo:
sudo emerge -a sys-apps/mmv
– Alpine Linux:
sudo apk add mmv
– OpenSUSE:
sudo zypper install mmv
– FreeBSD:
sudo pkg install mmv
在Arch Linux上,你需要从AUR仓库安装`mmv`:
sudo pacman -S git base-devel
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
yay -S mmv
安装完成后,你就可以开始使用`mmv`来重命名文件了。
mmv的基本语法
`mmv`的基本语法如下:
mmv [options] source_pattern target_pattern
– `源文件模式`:这是你想重命名的文件的匹配模式。
– `目标文件模式`:这是你希望文件重命名后的样式。
例如,如果你想将所有`.txt`文件重命名为`.md`文件,可以使用以下命令:
mmv '*.txt' '#1.md'
在这个例子中,`#1`指的是文件名中与`*`通配符匹配的部分。
使用mmv进行高级重命名
以下是一些更高级的`mmv`使用示例,展示如何高效地批量重命名文件:
1. 根据模式重命名多个文件
假设你有多个文件,如`file1.txt`、`file2.txt`、`file3.txt`,你希望将它们重命名为`document1.txt`、`document2.txt`、`document3.txt`,可以使用以下命令:
mmv 'file*.txt' 'document#1.txt'
在这个例子中:
– `file*.txt`匹配所有以`file`开头、以`.txt`结尾的文件。
– `document#1.txt`将这些文件重命名为`document1.txt`、`document2.txt`等。
2. 为文件添加前缀或后缀
如果你想为一组文件添加前缀或后缀,例如,你有一些文件如`image1.jpg`、`image2.jpg`、`image3.jpg`,并且想给每个文件添加前缀`2025_`,可以使用以下命令:
mmv '*.jpg' '2025_#1.jpg'
这将把文件重命名为`2025_image1.jpg`、`2025_image2.jpg`等。
如果你想添加后缀,而不是前缀,可以使用:
mmv '*.jpg' '#1_2025.jpg'
这将把文件重命名为`image1_2025.jpg`、`image2_2025.jpg`等。
3. 使用正则表达式重命名文件
`mmv`支持正则表达式,你可以用它来匹配复杂的模式。例如,假设你有文件`data_01.txt`、`data_02.txt`、`data_03.txt`,你希望去掉文件名中的前导零,可以使用以下命令:
mmv 'data_0*.txt' 'data_#1.txt'
这会将文件名中的`data_01.txt`、`data_02.txt`、`data_03.txt`重命名为`data_1.txt`、`data_2.txt`、`data_3.txt`。
4. 重命名子目录中的文件
如果你有子目录中的文件需要重命名,可以使用`-r`选项来递归地重命名。例如,如果你希望重命名当前目录及所有子目录中的`.txt`文件:
mmv -r '*.txt' '#1.txt'
这将会重命名当前目录及所有子目录中的`.txt`文件。
在Linux中,重命名文件不必是一个繁琐的任务。通过使用`mmv`,你可以轻松地按高级模式批量重命名文件,节省时间和精力。无论是添加前缀、更改扩展名,还是批量重命名文件,`mmv`都能帮你轻松实现。











