千家信息网

怎么在Linux上一次性批量重命名一组文件

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章给大家分享的是有关怎么在Linux上一次性批量重命名一组文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。rename 命令的用法。与 mv 命令不同,rename
千家信息网最后更新 2026年11月02日怎么在Linux上一次性批量重命名一组文件

这篇文章给大家分享的是有关怎么在Linux上一次性批量重命名一组文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

rename 命令的用法。

与 mv 命令不同,rename 命令不是简单地指定新旧文件名就行的。相反,它使用与 Perl 类似的正则表达式。我们先来看下例子。

$ rename 's/old/new/' this.old  $ ls this*  this.new

其中,s 的作用是指定我们使用第二个字符串替换第一个字符串,从而将 this.old 改为 this.new 。

有人可能会问了,上面的例子我们用 mv this.old this.new 这条命令不是更方便吗?没错,但是这样一条命令一次只能重命名一个文件,而我们今天要做的是一次性重命名一组文件。

要怎么处理呢?很简单,来看下面的例子:

$ ls *.old  report.old  schedule.old  stats.old  this.old  $ rename 's/old/new/' *.old  $ ls *.new  report.new  schedule.new  stats.old  this.new

由以上结果可见,通过这个简单的一条命令的操作,我们可以将当前目录下所有 .old 结尾的文件重命名为 .new 结尾的文件,简单高效!

如果你认为那是 rename 命令的全部那就是图样图森破了。rename 命令并不局限于更改文件扩展名,也可以更改文件名中的任意字符串。比如,我们如果想要将名为 report.* 的文件更改为 review.* ,则可以使用以下命令:

$ rename 's/report/review/' *

注意,正则表达式中提供的规则可以更改文件名的任意部分,无论是文件名还是扩展名。

$ rename 's/123/124/' *  $ ls *124*  status.124  report124.txt

如果你想交互性地使用 rename 进行重命名,以方便查看都做了哪些更改,从而避免错误修改,可以使用 -v 选项。

$ rename -v 's/123/124/' *  status.123 renamed as status.124  report123.txt renamed as report124.txt

-v 选项是要改一条文本时,给你预览一下,改一下条时,再给你预览一下,而这样效率比较低。如果我想要整体性地预览,当确认没有问题时一次性全部修改,怎么操作呢?

我们可以使用 -n 或 --nono 选项让 rename 命令实现上面的需求。

$ rename -n 's/old/save/' *  rename(logger.man-old, logger.man-save)  rename(lyrics.txt-old, lyrics.txt-save)  rename(olderfile-, saveerfile-)  rename(oldfile, savefile)  rename(review.old, review.save)  rename(schedule.old, schedule.save)  rename(stats.old, stats.save)  rename(this.old, this.save)

如果对上面的这些更改觉得没问题,那么可以去掉 -n 选项来正式修改文件名。

注意,rename 正则表达式中的 . 不是一般的英文句号,而是指匹配任意字符的通配符,我们可以参考下面的命令来理解。

$ rename -n 's/.old/.save/' *  rename(logger.man-old, logger.man.save)  rename(lyrics.txt-old, lyrics.txt.save)  rename(review.old, review.save)  rename(schedule.old, schedule.save)  rename(stats.old, stats.save)  rename(this.old, this.save)

以上例子里,不仅 .old 被修改为 .save ,-old 同样也被改为 .save 。

如果你想让 . 就是表示一个句号,需要加一个 \ 转义符号,即使用 \. 表示英文句号 .

$ rename -n 's/\.old/\.save/' *  rename(review.old, review.save)  rename(schedule.old, schedule.save)  rename(stats.old, stats.save)  rename(this.old, this.save)

若要将大写字母都更改为小写字母,我们可以使用以下命令。

$ rename -n 'y/A-Z/a-z/' W*  rename(WARNING_SIGN.pdf, warning_sign.pdf)  rename(Will_Gardner_buttons.pdf, will_gardner_buttons.pdf)  rename(Wingding_Invites.pdf, wingding_invites.pdf)  rename(WOW-buttons.pdf, wow-buttons.pdf)

其中,使用 -n 预览将要进行的更改,y 表示更改大小写。

在上面的示例中,我们将所有以大写字母 W 开头的文件名全部改为小写字母。

感谢各位的阅读!关于"怎么在Linux上一次性批量重命名一组文件"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

文件 命令 文件名 面的 一次性 例子 字母 字符 字符串 正则 表达式 句号 内容 可以使 大写 大写字母 小写 就是 扩展名 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 涨乐互联网科技 致骋互联网科技 互联网科技的英文 朗涯互联网科技 上海喔噻互联网科技 互联网高科技企业 互联网金融科技委员会 科技伦理 互联网公司 新华互联网科技校企合作 成都仁贤领冠互联网科技有限公司 华中科技有哪些互联网大佬 深圳市运趣互联网科技有限公司 创业天下互联网科技有限公司 西安小鹰速贷互联网科技有限公司 怎样加入科技互联网 每天都有哪些好的互联网科技 互联网科技品牌 华人运通互联网科技公司 重庆科技产业互联网有哪些 互联网高科技绘画 广州大一互联网络科技有限公司 为想互联网科技怎么样 互联网科技工作委员会副主任毛军 美国互联网科技 互联网 科技服务平台 昭通云南众福互联网科技有限公司 内蒙古九一互联网科技 工业互联网科技创业 2021世界互联网领先科技成果发布 三亚科技创新互联网基地
0