如何在Linux中批量重命名文件 rename命令高效批量改名方法

在linux中批量重命名文件可用rename命令实现。一、替换内容:如rename 's/.txt/.log/' .txt将.txt改为.log;二、删除多余字符:如rename 's/$$www\.example\.com$//' .mp4去掉文件名中的指定字符;三、添加前缀或后缀:通过捕获组实现,如rename 's/(.).jpg$/prefix_$1.jpg/' .jpg添加前缀;四、修改大小写:如rename 'y/a-z/a-z/' *.jpg转为小写;建议先用-n参数预览操作结果。

如何在Linux中批量重命名文件 rename命令高效批量改名方法

在Linux系统中,如果你需要批量重命名多个文件,rename 命令是一个非常高效的选择。它支持正则表达式,可以灵活地进行各种批量改名操作,比写脚本更省事。

如何在Linux中批量重命名文件 rename命令高效批量改名方法

一、基础用法:替换文件名中的某段内容

最常见的情况是替换文件名中的某些字符。例如,将所有 .txt 文件改为 .log 后缀:

如何在Linux中批量重命名文件 rename命令高效批量改名方法
rename 's/.txt/.log/' *.txt

这行命令的意思是:搜索(s)所有以 .txt 结尾的文件,并将其后缀替换为 .log

注意:有些发行版的 rename 命令默认不带 Perl 正则支持,比如 Debian/Ubuntu 使用的是 rename.ul。你可以通过安装 prename 或使用 perl-rename 来启用完整功能。

二、去掉文件名中的多余部分

有时候下载的文件会带有一堆无用字符,比如 [www.example.com] filename.mp4,我们可以用 rename 快速清理这些内容:

rename 's/$$www\.example\.com$//;' *.mp4

这个命令会删除文件名开头的 [www.example.com] 部分。其中:

  • $$$$ 是正则表达式中的字面括号,需要用反斜杠转义。
  • s/...// 表示替换成空字符串,即删除这部分。

三、添加统一前缀或后缀

如果你想给一批文件加上统一的前缀或后缀,虽然 rename 不直接支持“插入”操作,但可以通过正则表达式的捕获组实现:

rename 's/(.*)\.jpg$/prefix_$1.jpg/' *.jpg

这条命令会给所有 .jpg 文件添加 prefix_ 前缀。解释一下:

  • (.*) 表示匹配任意字符并保存下来;
  • $1 表示第一个捕获组的内容;
  • 所以整体就是把原文件名保留下来,在前面加上 prefix_

类似地,加后缀也可以这样做:

腾讯云AI代码助手 腾讯云AI代码助手

基于混元代码大模型的AI辅助编码工具

腾讯云AI代码助手 205 查看详情 腾讯云AI代码助手
rename 's/(.*)\.jpg$/$1_suffix.jpg/' *.jpg

四、批量修改大小写

有时你想统一文件名的大小写格式,比如都转为小写:

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

这条命令会把所有 .JPG 文件的扩展名变为 .jpg,适用于整理混乱的命名风格。

同样地,想全部转成大写也很简单:

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

小贴士:先预览再执行

为了避免误操作,建议先用 echo 看看实际效果:

rename -n 's/.txt/.log/' *.txt

加上 -n 参数后,rename 只会显示即将进行的操作,不会真正修改文件名。

如果确认没问题,再去掉 -n 执行。


基本上就这些常用方法了。掌握好 rename 的正则用法,处理大批量文件时效率能提升不少,而且不用写复杂脚本。

以上就是如何在Linux中批量重命名文件 rename命令高效批量改名方法的详细内容,更多请关注其它相关文章!

本文转自网络,如有侵权请联系客服删除。