在linux系统中,重命名文件是运维和日常使用过程中非常基础且高频的操作,系统提供了多种不同的实现方式,用户可以根据自身的操作场景选择最合适的方案。

使用mv命令重命名单个文件
mv是linux系统自带的移动文件命令,同时也可以用来实现单个文件的重命名,这也是最常用、最容易上手的方式。它的基础语法格式如下:
mv [选项] 原文件名 新文件名
常见的选项参数说明:
- -i:如果目标文件名已经存在,会提示用户是否覆盖,避免误操作丢失数据
- -f:强制覆盖已存在的目标文件,不会给出任何提示
实际使用示例:
# 把test.txt重命名为new_test.txt,如果new_test.txt已存在会提示确认 mv -i test.txt new_test.txt # 强制把demo.log重命名为demo_old.log,不提示覆盖 mv -f demo.log demo_old.log
使用rename工具批量重命名文件
如果需要批量重命名多个文件,使用mv命令逐个操作效率很低,这时候可以使用专门的rename工具。linux下常见的rename工具有两个版本,分别是Perl版本和C语言版本,两者的语法有区别,使用前可以先通过rename --version查看当前系统的rename版本。
Perl版本rename用法
Perl版本的rename支持正则表达式匹配,批量重命名能力更强,基础语法如下:
rename [选项] '正则表达式' 待重命名的文件
常用选项:
- -n:模拟执行重命名操作,不会实际修改文件名,用来测试规则是否正确
- -v:执行时显示每个文件的重命名过程
实际使用示例:
# 把所有.txt结尾的文件改成.md结尾,先模拟执行查看效果 rename -n 's/.txt$/.md/' *.txt # 确认规则正确后,实际执行重命名,同时显示过程 rename -v 's/.txt$/.md/' *.txt # 给所有jpg文件添加前缀img_,比如1.jpg变成img_1.jpg rename -v 's/^/img_/' *.jpg
C语言版本rename用法
C语言版本的rename语法更简单,不支持正则表达式,基础语法如下:
rename 原字符串 新字符串 待重命名的文件
实际使用示例:
# 把所有文件名里的old替换成new rename old new *.txt # 把所有文件名里的backup_前缀去掉 rename backup_ "" *.log
两种方式的适用场景对比
为了让用户更清晰地选择使用哪种方式,这里整理了两种重命名方式的对比表格:
| 对比项 | mv命令 | rename工具 |
|---|---|---|
| 适用场景 | 单个文件重命名 | 批量文件重命名 |
| 语法复杂度 | 简单,容易上手 | Perl版本需要了解正则表达式,C版本语法简单 |
| 功能灵活性 | 低,只能逐个操作 | 高,支持正则匹配、批量替换等复杂操作 |
| 系统自带情况 | 所有linux系统都自带 | 部分精简版系统可能没有预装,需要手动安装 |
操作注意事项
重命名操作前建议先备份重要文件,避免规则写错导致文件丢失。
- 使用rename的-n选项先模拟执行,确认重命名规则符合预期后再实际执行
- 如果文件名包含空格,需要使用引号把文件名包裹起来,避免被shell解析成多个参数
- 批量重命名时尽量缩小匹配范围,不要直接用通配符匹配所有文件,避免误改系统文件
如果是刚接触linux的新手,日常单个文件重命名优先使用mv命令,熟练之后再尝试使用rename工具处理批量操作,能大幅提升操作效率。
linuxrenamerename_utilitymv_command修改时间:2026-06-23 21:48:44