rename是 Linux 系统中用于一次性修改多个文件名称的命令行工具。它支持通过正则表达式或字符串替换的方式,对大量文件进行快速重命名,适用于需要集中处理文件名的情况。
该命令的标准写法如下:
rename [参数] '规则' 文件...
规则:定义文件名修改方式,可以是正则表达式或替换字符串
文件:待更名的目标文件集合,可使用通配符(例如
*.log)
| 参数 | 作用 |
|---|---|
| `-v` | 输出执行过程信息(详细模式) |
| `-n` | 仅预览操作结果,不真正执行 |
| `-f` | 覆盖已存在的文件 |
| `-h` | 查看帮助文档 |
将当前目录下所有
.html文件改为
.php:
rename 's/.html$/.php/' *.html
说明:
s/表示开始替换
.html$匹配以
.html结尾的文件名(
$表示结尾)
/.php/表示替换成
.php
为所有
.txt文件加上
backup_前缀:
rename 's/^/backup_/' *.txt
移除所有文件名中的空格字符:
rename 's/ //g' *
注意:
g表示全局替换(替换所有匹配项)
把
.jpg后缀统一改成大写格式:
rename 's/.jpg$/.JPG/' *.jpg
rename 's/(d+)/sprintf("%03d", $1)/e' *.png功能:将文件名中的数字部分补零至三位数(如
img1.png→
img001.png)
rename 'if (/.jpeg$/) { s/.jpeg$/.jpg/ }' *功能:只对后缀为
.jpeg的文件进行重命名
-n测试效果再正式执行
rename实现可能略有区别
若系统未安装
rename工具,可尝试以下方案:
mv配合循环实现
for file in *.html; do
mv "$file" "${file%.html}.php"
done
# Ubuntu/Debian
sudo apt install rename
# CentOS/RHEL
sudo yum install prename
rename是 Linux 中非常实用的批量改名工具,掌握其正则表达式语法能够轻松应对各种复杂的文件名调整任务。建议从基础替换开始学习,逐步提升到复杂应用。