Linux rename命令

描述

Linux rename 重命名多个文件。支持通配符和正则表达式。

可通过 man rename 查看相关帮助文档。

语法

rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]

参数

-v, --verbose:打印重命名后的文件。
-n, --no-act:显示将要重命名的文件,带-n时并没有执行重命名。
-f, --force:强制:覆盖现有文件。

rename重命名单个文件

例如有deviceConfig.cpp文件,要重命名为deviceConfig.cpp.bk

方式一:

rename deviceConfig.cpp deviceConfig.cpp.bk deviceConfig.cpp
# 修改失败提示
Bareword "deviceConfig" not allowed while "strict subs" in use at (eval 1) line 1.
Bareword "cpp" not allowed while "strict subs" in use at (eval 1) line 1.

http://blog.chinaunix.net/uid-26557245-id-3570135.html

可使用linux mv命令来完成重命名。

方式二:利用某种规则

rename 's/cpp$/cpp.bk/' deviceConfig.cpp

rename正则表达式示例

字母的替换

rename 's/AA/aa/' *		#把文件名中的AA替换成aa 

注意:单引号的英文格式下的,不然会有错误提示:Unrecognized character \xE2; marked by <-- HERE after <-- HERE near column 1 at (eval 1) line 1.

修改文件的后缀

rename 's/\.html/.php/' *  #把.html 后缀的改成 .php后缀 

批量添加文件后缀

rename 's/$/.txt/' * #把所有的文件名都以txt结尾 

批量删除文件名

rename 's/\.txt//' * #把所有以.txt结尾的文件名的.txt删掉 

注意:

  1. 删除后存在重名时删除失败,可添加-f参数覆盖;
  2. 只删除当前路径,不删除子目录;

如我们想把文件扩展名为.bak 的文件扩展名去掉,可以这样

rename 's/.bak$//' *.bak 

去除文件名中的空格

rename 's/ //g' * 

g 是global的意思,替换所有的空格为空字符(也就是删除啦)

文件名转为小写

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

参考资料

https://blog.csdn.net/w849593893/article/details/82587695
https://blog.csdn.net/eden_blue/article/details/57123205?utm_medium=referral&utm_source=itdadao
https://www.linuxidc.com/Linux/2019-08/160328.htm
https://www.cnblogs.com/dingbj/p/10089686.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值