批量重命名/复制/链接工具

在 GNU/Linux 中有几种不同的方法来执行文件的批量重命名(是的,批量重命名是可能的!)。 还有一个 perl 脚本可以重命名文件的扩展名,请参阅第 19 章

以下是使用 mmvrename(一个 perl 脚本)或一些 bash shell 脚本命令来执行文件批量重命名的三种方法。

 

mmv

mmv 是一个批量移动/复制/重命名工具,它使用标准通配符来执行其功能。

mmv 的手册页相当难懂,我对这个工具的理解有限。 然而,mmv 支持一些标准通配符。

根据手册,“;”通配符对于匹配目录树中任何深度的文件非常有用(即它将递归地深入到当前目录之下)。

下面显示了如何使用 mmv 的示例

mmv \*.JPG \#1.jpg 

第一个模式匹配任何带有“.JPG”的文件,并将每个文件(“#1”匹配第一个通配符)重命名为“.jpg”。

每次使用 \(通配符) 时,都可以使用 #x 来获取该通配符。 其中 x 是一个从 1 开始的数。

mmv 主页: 您可以在网络上这里找到 mmv

另请注意,与 mmv 一起使用的某些选项也适用于套件中的其他工具,这些工具包括 mcp(批量复制)、mad(将源文件的内容批量附加到目标名称)、mln(批量链接到源文件)。

提示:: Java 替代 mmv 的方案,可在 GNU/Linux 和 Windows 上运行,Esomaniac

rename

rename 是一个 perl 脚本,可以用于根据正则表达式批量重命名文件。

以下是将所有“.JPG”文件重命名为“.jpg”的示例

rename 's/\.JPG$/.jpg/' *.JPG 

查找 rename: 您可以从不同的地方获取 rename。 我建议尝试 CPAN 搜索站点,我在这里找到了该脚本 Rename Script Version 1.4

Bash 脚本

Bash 脚本是重命名文件的一种方法。 您可以开发一组指令(一个脚本)来重命名文件。 如果您没有 mmvrename...,脚本非常有用。

下面显示了一种方法

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 脚本编程指南