千家信息网

Linux中如何使用rename命令批量重命名文件

发表于:2025-02-05 作者:千家信息网编辑
千家信息网最后更新 2025年02月05日,这篇文章给大家分享的是有关Linux中如何使用rename命令批量重命名文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在Linux系统中需要对文件进行重命名大家第一个想
千家信息网最后更新 2025年02月05日Linux中如何使用rename命令批量重命名文件

这篇文章给大家分享的是有关Linux中如何使用rename命令批量重命名文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

在Linux系统中需要对文件进行重命名大家第一个想到的命令就是mv,mv命令对单个文件进行重命名非常方便,但是当我们需要对多个文件重命名时mv命令不能达到很好的效果,此时我们可以采用rename命令。

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中如何使用rename命令批量重命名文件"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

命令 文件 文件名 面的 例子 字母 字符 字符串 就是 正则 表达式 句号 一次性 内容 可以使 大写 大写字母 小写 扩展名 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 余杭区app软件开发团队 匿名ftp服务器地址 新建文件地理数据库怎么弄 发生网络安全事件的当事人给予 海康威视授时服务器远程管理 语音情绪数据库 服务器sata硬盘速度怎么样 台州数据库培训哪里好 csgo检索服务器闪退 互联网科技作文 支撑直播的正式网络技术 网络安全和诚信教育手抄报 access数据库实验方案 基层医院是科研的大量数据库 以网络安全为话题的英语作文 元宇宙展示软件开发 河南甜柚网络技术有限公司资质 吉林综合软件开发供应商 护苗网络安全教育课记录 520服务器 方舟生存进化租服务器赚钱吗 九江市软件开发公司 苏州正规软件开发需要多少钱 服务器sata硬盘速度怎么样 clds数据库 浙江互联网软件开发大概要多少钱 网络服务器搭建心得体会 香港宽频公司软件开发待遇 电网网络安全一区数据传外网 数据库字段不能重命名150
0