Linux下批量重命名文件

本文介绍在Linux环境下如何使用rename命令批量重命名文件,包括改变文件扩展名、转换文件名大小写及复杂模式替换等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过rename命令批量重命名文件

基本语法

rename [-n -v -f] <pcre> <files>
  1. 'pcre’是Perl兼容正则表达式,它表示的是要重命名的文件和该怎么做。正则表达式的形式是‘s/old-name/new-name/’。
  2. ‘-v’选项会显示文件名改变的细节(比如:XXX重命名成YYY)。
  3. ‘-n’选项告诉rename命令在不实际改变名称的情况下显示文件将会重命名的情况。这个选项在你想要在不改变文件名的情况下模拟改变文件名的情况下很有用。
  4. ‘-f’选项强制覆盖存在的文件。

示例

1. 改变文件扩展名

假设你有许多.jpeg的图片文件,你想要把它们的名字改成.jpg。下面的命令就会将.jpeg 文件改成 *.jpg。

rename 's/\.jpeg/\.jpg/' *.jpeg

2. 大写改成小写

有时你想要改变文件名的大小写,你可以使用下面的命令。

  1. 把所有的文件改成小写
rename 'y/A-Z/a-z/' *
  1. 把所有的文件改成大写
rename 'y/a-z/A-Z/' *

3. 更改文件名模式

现在让我们考虑更复杂的包含子模式的正则表达式。在PCRE中,子模式包含在圆括号中,符后接上数字(比如1,$2)。

下面的命令会将‘imgNNNN.jpeg’变成‘danNNNN.jpg’。
root@root:~$ rename -v 's/img_(\d{4})\.jpeg/dan_$1.jpg/' *.jpeg
img_5417.jpeg renamed as dan_5417.jpg
img_5418.jpeg renamed as dan_5418.jpg
img_5419.jpeg renamed as dan_5419.jpg
img_5420.jpeg renamed as dan_5420.jpg
img_5421.jpeg renamed as dan_5421.jpg
img_5422.jpeg renamed as dan_5422.jpg
下面的命令会将‘img_000NNNN.jpeg’变成‘dan_NNNN.jpg’。
root@root:~$ rename -v 's/img_\d{3}(\d{4})\.jpeg/dan_$1.jpg/' *.jpeg
img_0005417.jpeg renamed as dan_5417.jpg
img_0005418.jpeg renamed as dan_5418.jpg
img_0005419.jpeg renamed as dan_5419.jpg
img_0005420.jpeg renamed as dan_5420.jpg
img_0005421.jpeg renamed as dan_5421.jpg
img_0005422.jpeg renamed as dan_5422.jpg

上面的例子中,子模式‘\d{4}’会捕捉4个连续的数字,捕捉的四个数字匹配模式对应$1, 将会用于新的文件名。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值