Linux rename命令--批量重命名文件
rename 命令是 Linux 系统中用于批量重命名文件的实用工具。它通过使用正则表达式或简单的字符串替换,可以高效地对多个文件进行重命名操作,特别适合需要批量处理文件名的场景。
基本语法
rename 命令的基本语法格式如下:
rename [选项] '表达式' 文件...
参数说明
- 表达式:指定文件名转换规则的正则表达式或替换字符串
- 文件:要重命名的目标文件,支持通配符(如- *.txt)
常用选项
| 选项 | 描述 | 
|---|---|
| -v | 显示详细操作信息(verbose) | 
| -n | 模拟运行,不实际执行重命名(dry-run) | 
| -f | 强制覆盖已存在的文件 | 
| -h | 显示帮助信息 | 
使用示例
1. 简单字符串替换
将当前目录下所有 .html 文件扩展名改为 .PHP:
rename 's/.html$/.php/' *.html
代码解析:
- s/表示替换操作开始
- .html$匹配以- .html结尾的文件名(- $表示行尾)
- /.php/替换为- .php扩展名
2. 添加前缀
为所有 .txt 文件添加 backup_ 前缀:
rename 's/^/backup_/' *.txt
3. 删除特定字符
删除文件名中的所有空格:
rename 's/ //g' *
注意:g 表示全局替换(所有匹配项)
4. 大小写转换
将所有 .jpg 文件扩展名改为大写:
rename 's/.jpg$/.JPG/' *.jpg
高级用法
1. 使用变量和复杂替换
rename 's/(d+)/sprintf("%03d", $1)/e' *.png功能:将文件名中的数字序列格式化为3位数(如 1.png → 001.png)
2. 条件重命名
rename 'if (/.jpeg$/) { s/.jpeg$/.jpg/ }' *功能:仅对 .jpeg 文件进行扩展名修改
注意事项
- 备份重要文件:在执行批量重名前,建议先使用 - -n选项测试
- 正则表达式语法:不同 Linux 发行版的 - rename实现可能不同
- 特殊字符处理:文件名包含特殊字符时需要转义 
- 权限问题:确保对目标文件有写权限 
替代方案
如果系统没有预装 rename 命令,可以使用以下替代方法:
1. 使用 mv 结合循环
实例
for file in *.html; do
mv "$file" "${file%.html}.php"
done
mv "$file" "${file%.html}.php"
done
2. 安装 Perl 版本的 rename
实例
总结
rename 命令是 Linux 文件管理的强大工具,通过掌握其正则表达式语法,可以高效完成各种复杂的批量重命名任务。建议从简单替换开始练习,逐步掌握更高级的用法。
文章声明:以上内容(如有图片或视频亦包括在内)除非注明,否则均为阿初在此原创文章,转载或复制请以超链接形式并注明出处。https://www.achu.pro/20130135.html
« 上一篇
			Linux find命令--查找文件和目录
		下一篇  »
			Linux mdir命令--列出目录内容
		 阿初
阿初
还没有评论,来说两句吧...