rename批量命名命令
参考:http://www.ttlsa.com/linux-command/linux-rename-command-batch-rename/
Linux下rename命令有两种版本一种是C语言版本,一种是perl语言版本
查看版本
1 | man renmae |
第一行出现以下内容的是perl版本
1 | User Contributed Perl Documentation |
第一行出现其他的或者则是C语言版本
1 | User Commands |
PS:CentOS默认是C语言版本,Ubuntu是perl版本
C语言版本命令格式
1 | rename from to file |
说明
1 2 3 | from 修改什么名字 to 修改成什么名字 file 文件名 |
举例说明,把以下文件修改成类似html的格式
1 2 3 4 5 6 7 8 9 | 1.htm 2.htm 3.htm 4.htm 5.htm 6.htm 7.htm 8.htm 9.htm |
命令如下,把htm修改成html 使用*.htm批量匹配文件
1 | rename htm html *.htm |
现在总结一下rename C语言版本所能实现的功能: 批量修改文件名,结果是每个文件会被用相同的一个字符串替换掉!也就是说,无法实现诸如循环 然后按编号重命名
perl版rename格式
1 | rename [ -h|-m|-V ] [ - v ] [ -n ] [ -f ] [ -e|-E perlexpr]*|perlexpr [ files ] |
注意,perl版本的rename只有两个参数,第一个参数为perl正则表达式,第二个参数为所要处理的文件
man rename帮助实例
1)有一批文件已.bak结尾,把.bak删除
1 | rename 's/\.bak$//' * |
这个命令和sed里面的正则是一样的
\. 转义
bak$ 以bak结尾
2)把所有文件名内含有大小字母的,修改为小写字母
1 | rename 'y/A-Z/a-z/' * |
其他列子
在文件头部统一加hello
1 | rename 's/^/hello/' * |
把htm换成html
1 | rename 's/htm/html/' * |
在尾部加.zip
1 | rename 's/$/.zip/' * |
规则化数字编号名,比如 1.jpg, 2.jpg ..... 100.jpg , 现在要使文件名全部三位即 1.jpg .... 001.jpg
1 2 | rename 's/^/00/' [0-9].jpg #把1-9前面加上00 rename 's/^/0/' [0-9][0-9].jpg #把10-99前面加上0 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!