Linux批量重命名文件rename命令教程 Linux
前言
上传的图片或日志文件名不统一,需要批量替换前缀、扩展名或去掉空格,手动改名太慢。rename 支持正则表达式批量重命名,一条命令改一批。本文讲解 rename 安装、替换文字、改扩展名、大小写转换和安全预览。
操作步骤
1. 确认 rename 版本
rename -V
不同发行版是 perl 版或 util-linux 版,正则写法略有差异。
2. 批量替换文件名中的文字
rename 's/old/new/' *.jpg
perl 版 s/旧/新/ 替换。
3. 批量改扩展名
rename 's/\.txt$/.md/' *.txt
4. 去掉文件名空格
rename 's/\s+/_/g' *.png
5. 大小写转换(小写)
rename 'y/A-Z/a-z/' *
6. 干跑预览(不实际改名)
rename -n 's/old/new/' *.jpg
7. 配合循环的替代写法
for f in *.log; do mv "$f" "${f%.log}.txt"; done
常见坑
- 不加 -n 直接改,写错正则批量损坏文件名,务必先预览。
- perl 版和 C 版 rename 参数不同,先看版本。
- 正则没加锚点,中间片段被误替换。
- 通配符匹配到目录,rename 对目录也会改。
- 文件名含特殊字符,用引号和正确转义。
- 重名冲突时部分文件被覆盖,先检查目标名。
- 重要文件先备份再批量改名。
总结
rename 用正则批量改名,s/旧/新/ 替换、y/源/目标/ 转大小写,-n 干跑预览。先确认版本,改扩展名和去空格都靠正则锚点。批量操作前预览、备份,避免误改覆盖。
遇到问题加QQ23979811 协助处理