首页/系统/Linux 运维命令速查/rename 批量重命名
文件与目录76 条

rename 批量重命名

按规则批量改名,两种版本(util-linux 简单替换 / Perl 正则版)语法完全不同,用前先确认是哪一种。

Linux 运维命令速查系统更新于 2026-10-13

rename 是什么

批量重命名存在两套完全不同的实现:一套是简单字符串替换版,另一套是正则表达式版,前者常见于 RHEL 系,后者常见于 Debian 系。执行任何批量改名之前都要先预演,因为改名基本不可逆。

基本信息

用途批量重命名文件
两种实现字符串替换版与正则版
差异语法完全不同,误用会全部失败或改错
安全做法先预演再执行

典型使用场景

  • 统一扩展名:把写法或大小写不一致的后缀改成统一形式
  • 批量加前缀:给一批导入文件加上来源标识
  • 批量去后缀:移除备份文件的多余后缀
  • 整理命名规范:把空格或特殊字符替换成连字符
  • 保留可逆性:改名前后各留一份清单便于回退

字符串替换版

字符串替换版
rename .jpeg .jpg *.jpeg
rename -v .bak '' *.bak            # 删除后缀
rename -n .log .log.old *.log      # 预演,不实际执行

正则版

正则版
rename -n 's/.jpeg$/.jpg/' *        # 先预演
rename 's/IMG_/photo-/' IMG_*.jpg
rename 'y/A-Z/a-z/' *              # 转小写

两版对照

对比项字符串替换版正则版
语法旧串 新串 文件列表表达式 文件列表
能力只做字面替换支持替换与字符转换
常见发行版RHEL 系多为该实现Debian 系多为该实现
预演有对应选项有对应选项
输出过程有详细选项有详细选项
在 Debian 系上写字符串替换版语法会全部失败,动手前先用版本信息或手册确认实现。
正则版默认直接执行且改名不可逆,务必先加预演选项并逐条核对命中的新旧名字。
批量改名前后都应保留文件清单,出现同名覆盖或错改时才有依据回退。
改名与移动是两件事:只改名字用改名命令,需要同时换目录时用移动命令,混用容易产生意料外的路径。
扩展名大小写不一致时先用预演列出命中清单,再决定是否统一转换。

易错点

  • 不同发行版是两个不同实现,语法不通会导致命令全部失败或出现意外改名
  • 不做预演直接执行正则替换,写错模式会批量改成无法识别的名字
  • 改名后覆盖同名文件会静默丢失内容,先确认目标名不存在
  • 通配符匹配不到隐藏文件,需要一并处理时显式补充匹配规则

数据来源与参考

  • man 1 rename(util-linux / perl-rename 两版手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌