27.01.2026
Linux
专用服务器 虚拟服务器
如何在Linux终端中重命名文件
重命名文件是任何操作系统中最常见的任务之一——在 Linux 中,通过终端进行重命名时尤其强大。从简单的名称更改到使用模式的复杂批处理操作,重命名是一个必不可少的工具,用于:
- 按日期、类型或项目 组织文件
- 自动清理 日志、备份或临时数据
- 标准化文件名 用于脚本、部署或 APIs
- 在开发、研究或数据科学环境中 预处理数据
- 集成到 CI/CD、图像处理或版本控制的管道中
无论您是重命名数千个图像文件的开发人员,清理旋转日志的系统管理员,还是为部署准备工件的 DevOps 工程师——了解如何在终端中高效重命名文件将节省时间,减少错误,并在规模上解锁自动化。
使用 mv 进行基本文件重命名
mv(移动)命令是重命名文件的标准方法:
这适用于:
- 重命名文件
- 将文件移动到新目录
- 同时进行这两项操作
示例:
重命名多个文件 — 高级技术
1. 🔁 使用 rename(基于 Perl)
最强大和灵活的方法。
安装(如果缺失):
基本用法:
这将重命名所有 .txt 文件,将文件名中的 “old” 替换为 “new”。
示例:
| 目标 | 命令 |
|---|---|
| 为所有 .jpg 文件添加前缀 | rename ‘s/^/IMG_/’ *.jpg |
| 从文件名中删除 .bak | rename ‘s/.bak$//’ *.bak |
| 将 .JPG 更改为 .jpg | rename ‘s/.JPG$/.jpg/i’ *.JPG |
| 用下划线替换空格 | rename ‘s/ /_/g’ * |
使用 mmv
另一个方便的工具,尽管不如 “rename” 灵活。
安装:
示例用法:
使用 find + mv + bash(用于复杂逻辑)
示例:递归地将 .txt 文件中的破折号替换为下划线。
这安全、灵活,并且可以在嵌套目录中工作。
使用 for 循环重命名
示例:为所有 .log 文件添加前缀
您可以使用更多的 bash 脚本逻辑进行自定义(如子字符串替换、扩展名、时间戳等)
最佳实践
在批量重命名之前始终进行测试:
-n 是 干运行 — 显示将会发生的情况,但不做任何更改。
引用您的变量以处理带有 空格 或 特殊字符 的文件名
在重命名数千个文件之前使用版本控制或备份
