在 GNU/Linux 中,有几种不同的方法可以执行批量文件重命名(是的,批量重命名是可能的!)。还有一个 perl 脚本可以重命名文件扩展名,请参阅第 19 章。
以下是使用命令 mmv、rename(一个 perl 脚本)或一些 bash shell 脚本执行批量文件重命名的三种方法。
�
mmv 是一个批量移动/复制/重命名工具,它使用标准通配符来执行其功能。
mmv 的手册页相当难以理解,我对这个工具的理解也有限。但是 mmv 支持一些标准通配符。
根据手册,“;” 通配符对于匹配目录树中任何深度的文件非常有用(即它将递归地进入当前目录的下级目录)。
下面显示了如何使用 mmv 的示例
mmv \*.JPG \#1.jpg |
第一个模式匹配任何以“.JPG”结尾的文件,并将每个文件重命名为“.jpg”(“#1”匹配第一个通配符)。
每次使用 \(通配符) 时,您都可以使用 #x 来获取该通配符。其中 x 是一个从 1 开始的正数。
![]() | mmv 主页 |
---|---|
您可以在网络上找到 mmv 这里。 另请注意,与 mmv 一起使用的某些选项也适用于该套件中的其他工具,这些工具包括 mcp(批量复制)、mad(将源文件的内容批量附加到目标名称)、mln(批量链接到源文件)。 |
![]() | 提示 |
---|---|
mmv 的 Java 替代品可在 GNU/Linux 和 Windows 上运行,Esomaniac |
rename 是一个 perl 脚本,可用于根据正则表达式批量重命名文件。
将所有“.JPG”文件重命名为“.jpg”的示例如下
rename 's/\.JPG$/.jpg/' *.JPG |
![]() | 查找 rename |
---|---|
您可以从不同的地方获取 rename。我建议尝试 CPAN 搜索站点,我在这里找到了该脚本 Rename 脚本版本 1.4 |
Bash 脚本是重命名文件的一种方法。您可以开发一组指令(一个脚本)来重命名文件。如果您没有 mmv 或 rename...,脚本非常有用
下面显示了一种方法
for i in *.JPG; do mv $i `basename $i JPG`jpg; done |
请注意,上面的脚本来自一个 Usenet 帖子。不幸的是,我不知道作者的名字。
第一行表示查找所有扩展名为“.JPG”的文件(仅限大写,因为 UNIX 系统区分大小写)。
第二行使用 basename(输入 man basename 了解更多详情)和 '$i' 参数。'$i' 是一个字符串,包含匹配文件的名称。该行的下一部分从末尾删除 JPG 扩展名,并为每个文件添加 jpg 扩展名。命令 mv 在输出上运行。
另一种方法是
for i in *.JPG; do mv $i ${i%%.JPG}.jpg; done |
上面的脚本使用内置的 bash 函数重命名文件。有关 bash 脚本的更多信息,您可能想查看由 Mendel Cooper 编写的高级 bash 脚本指南。