当前位置:
职场发展 > 如何在Linux上一次批量重命名一组文件?
如何在Linux上一次批量重命名一组文件?
在Linux中,我们一般使用mv命令来对文件进行重命名,在对单个文件进行重命名时非常方便。今天我们就来介绍一个可以实现批量重命名的好用命令——rename命令。
在Linux中,我们一般使用mv命令来对文件进行重命名,在对单个文件进行重命名时非常方便。然而,如果我们想要重命名一组文件,mv 就有点弱了。但这并不重要。今天我们就来介绍一个可以实现批量重命名的好用命令——rename命令。
下面详细介绍一下rename命令的用法。
与 mv 命令不同,rename 命令不简单地指定旧文件名和新文件名。相反,它使用类似于 Perl 的正则表达式。我们先看一个例子。
$ 重命名's/old/new/' this.old $ ls this* www.sychzs.cn
其中,s的作用是指定我们用第二个字符串来替换第一个字符串,从而将this.old改为www.sychzs.cn。
有人可能会问,我们使用上例中的 mv this.old www.sychzs.cn 命令不是更方便吗?没错,但是这样的命令一次只能重命名一个文件,而我们今天要做的就是一次重命名一组文件。
怎么处理呢?很简单,看下面的例子:
$ ls *.old 报告.旧计划.旧统计.旧 this.old $ 重命名's/旧/新/' *.old $ ls *.新报告.新计划.新统计.旧 www.sychzs.cn
从上面的结果可以看出,通过这个简单的命令操作,我们就可以将当前目录下所有以.old结尾的文件重命名为以.new结尾的文件,简单高效!
如果您认为这就是重命名命令的全部内容,那么这种模式就被破坏了。重命名命令不仅可以更改文件扩展名,还可以更改文件名中的任何字符串。例如,如果我们想将名为report.*的文件更改为review.*,我们可以使用以下命令:
$ 重命名's/report/review/' *
请注意,正则表达式中提供的规则可以更改文件名的任何部分,无论是文件名还是扩展名。$ 重命名 's/123/124/' * $ ls *124* status.124 report124.txt
如果您想以交互方式使用重命名来查看所做的更改并避免错误的修改,可以使用 -v 选项。
$ rename -v 's/123/124/' * status.123 重命名为 status.124 report123.txt 重命名为 report124.txt
-v选项会在你想改变一段文本的时候给你一个预览,当你想改变一段文本的时候再给你一次预览,但是这样效率比较低。如果我想整体预览一下,确认没有问题后一次性全部修改怎么办?
我们可以使用-n或--nono选项让rename命令达到上述要求。
$ 重命名 -n 's/old/save/' * 重命名(www.sychzs.cn-old, www.sychzs.cn-save) 重命名(lyrics.txt-old,lyrics.txt-save) 重命名(olderfile-, saveerfile-) 重命名(旧文件,保存文件)重命名(review.old,www.sychzs.cn)重命名(schedule.old,www.sychzs.cn)重命名(stats.old,www.sychzs.cn)重命名(this.old,www.sychzs.cn)
如果您对上述更改感到满意,则可以删除 -n 选项来正式更改文件名。
请注意,. rename正则表达式中的不是普通的英文句点,而是匹配任意字符的通配符。我们可以参考下面的命令来理解。$ 重命名 -n 's/.old/.save/' * 重命名(www.sychzs.cn-old, www.sychzs.cn) 重命名(lyrics.txt-old,www.sychzs.cn) 重命名(review.old, review .save)重命名(schedule.old,www.sychzs.cn)重命名(stats.old,www.sychzs.cn)重命名(this.old,www.sychzs.cn)
在上面的示例中,不仅.old 更改为.save,-old 也更改为.save。
如果你想 。表示句点需要添加\转义符号,即使用\。代表一个英语时期。
$ rename -n 's/\.old/\.save/' * 重命名(review.old, www.sychzs.cn) 重命名(schedule.old, www.sychzs.cn) 重命名(stats.old, www.sychzs.cn) 重命名(this .旧的,这个.保存)
要将所有大写字母更改为小写字母,我们可以使用以下命令。
$ 重命名 -n 'y/A-Z/a-z/' W* 重命名(WARNING_SIGN.pdf, warning_sign.pdf) 重命名(Will_Gardner_buttons.pdf, will_gardner_buttons.pdf) 重命名(Wingding_Invites.pdf, wingding_invites.pdf) 重命名(WOW-buttons. pdf、wow-buttons.pdf)
其中,使用-n预览将要进行的更改,使用y更改大小写。
在上面的示例中,我们将所有以大写字母 W 开头的文件名更改为小写字母。
总结
如果要重命名单个文件,可以使用 mv 命令。如果要重命名一组文件,使用rename命令会更方便。注意,使用rename命令时最好加上-n选项。先预览一下要修改的内容,确认无误后再重命名,以免发生意外。