
Linux rename 命令
rename是 Linux 系统中用于一次性修改多个文件名称的命令行工具。它支持通过正则表达式或字符串替换的方式,对大量文件进行快速重命名,适用于需要集中处理文件名的情况。
基本语法
该命令的标准写法如下:
rename [参数] '规则' 文件...
参数解释
规则
:定义文件名修改方式,可以是正则表达式或替换字符串文件
:待更名的目标文件集合,可使用通配符(例如*.log
)
常用参数
| 参数 | 作用 |
|---|---|
| `-v` | 输出执行过程信息(详细模式) |
| `-n` | 仅预览操作结果,不真正执行 |
| `-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功能:将文件名中的数字部分补零至三位数(如
img1.png→
img001.png)
2. 按条件重命名
rename 'if (/.jpeg$/) { s/.jpeg$/.jpg/ }' *功能:只对后缀为
.jpeg的文件进行重命名
注意事项
-
提前备份关键数据:建议先用
-n
测试效果再正式执行 -
正则差异性:不同系统的
rename
实现可能略有区别 - 特殊字符处理:文件名含特殊符号时需进行转义
- 权限控制:确保拥有目标文件的写入权限
替代方法
若系统未安装
rename工具,可尝试以下方案:
1. 利用 mv
配合循环实现
示例
for file in *.html; do
mv "$file" "${file%.html}.php"
done
2. 安装 Perl 版 rename
示例
# Ubuntu/Debian
sudo apt install rename
# CentOS/RHEL
sudo yum install prename
总结
rename是 Linux 中非常实用的批量改名工具,掌握其正则表达式语法能够轻松应对各种复杂的文件名调整任务。建议从基础替换开始学习,逐步提升到复杂应用。










