rename ( 英文名称:rename ) 是 Linux / FreeBSD 系统上的用于文件重命名工具,它使用 Perl 正则表达式匹配文件名,可以实现批量重命名文件,快捷方便。

本文将为你介绍 rename 命令的使用方法,使你对 rename 命令具有基本的了解,方便你使用该命令重命名文件。

rename 命令语法结构

如下给出 rename 命令的基本语法结构:

rename [options] 's/原模式/替换模式/[修饰符]' 文件...
rename [options] 'y/查找字符集/替换字符集/' 文件...
rename [options] 'tr/原字符集/替换字符集/' 文件...

语法结构中的重要部分解释说明:

  • 's/原模式/替换模式/[修饰符]':使用字符串或正则表达式的方式批量重命名操作
  • 'y/查找字符集/替换字符集/':使用替换字符集的方式重命名文件
  • 'tr/原字符集/替换字符集/':使用替换字符集的方式重命名文件(语法形式更加的简单)
  • 文件...:需要重命名的文件列表

rename 命令使用示例

1. 将名称中字符串替换

使用 s 模式,把名称中的就字符串替换为新字符串:

rename 's/old/new/' *.txt

如上示例:将当前文件夹下所有的 .txt 文件中的第一个 old 替换为 new

2. 全局替换特殊字符

s 模式中,可以使用 Perl 正则表达式替换特定的字符:

rename 's/[ \?]/_/g' *

如上示例:将当前文件夹下所有文件名中的空格和问号替换为下划线

3. 添加日期前缀

s 模式中,可以使用 Perl 正则表达式为名称添加前缀或后缀:

rename 's/^/2023-/' *.jpg

如上示例:为当前文件夹下所有 JPG 文件添加 2023- 前缀, ^ 表示字符串开始位置

4. 大小写替换

可以使用 y 模式替换字符集:

rename 'y/A-Z/a-z/' *.MP3

如上示例:将当前文件夹下的所有 MP3 文件名中的大写字符转换为小写

5. 修改文件扩展名

s 模式中,可以使用 Perl 正则表达式为修改文件的扩展名(和添加前缀后缀的操作相似):

rename 's/\.jpeg$/.jpg/i' *.jpeg

如上示例:将当前文件夹下的 .jpeg 扩展名修改为 .jpg

rename 命令选项详解

如下给出 rename 命令选项的详细解释说明:

选项 说明 示例
-v 重命名文件时,输出详细信息 rename -v 's/old/new/' *
-n 测试模式,不实际修改文件名 rename -n 's/a/b/' *
-f 强制覆盖已经存在的文件
-i 交互模式重命名文件 rename -i 's/old/new/' *
-d 只重命名目录 rename -d 's/ /_/g' *
-e 执行 Perl 代码片段 rename -e 'print "$_\n"' *
-h 显示帮助信息 rename -h
-V 显示版本信息 rename -V

相似工具功能对比

命令 特点
rename 支持使用 Perl 正则表达式,实现批量重命名文件名
mv 简单的文件重命名工具,一次只能重命名一个文件
mmv 可以使用通配符批量重命名文件

结语

本文全面的介绍了 rename 的语法结构及其功能,并给出了 rename 命令的具体使用示例,相信你能够对 rename 命令有个基本的了解,并帮助你正确的使用 rename 重命名文件或目录。 rename 命令可以在 Linux 各发行版和 FreeBSD 系统中使用,基本功能是相同的。