在linux系统的文件管理操作中,修改文件名是基础且常用的需求,系统提供了多种命令来实现这一功能,其中最常用的就是mv命令和rename命令,两种命令各有适用的场景,用户可以根据实际需求选择使用。

mv命令修改文件名
mv命令是linux系统中用于移动文件或重命名文件的命令,当目标路径和源文件路径在同一目录下时,就实现了文件重命名的效果,这是单个文件重命名最常用的方式。
基本语法
mv命令修改文件名的基本语法如下:
mv [选项] 原文件名 新文件名
常用选项说明
- -i:交互式操作,如果目标文件已经存在,会询问用户是否覆盖
- -f:强制操作,如果目标文件已经存在,直接覆盖不询问
- -v:显示操作过程,会输出重命名的具体信息
使用示例
将当前目录下的test.txt重命名为new_test.txt:
mv test.txt new_test.txt
如果new_test.txt已经存在,使用-i选项避免误覆盖:
mv -i test.txt new_test.txt # 如果new_test.txt存在,会提示是否覆盖,输入y确认覆盖,输入n取消操作
使用-v选项查看重命名过程:
mv -v test.txt new_test.txt # 输出:'test.txt' -> 'new_test.txt'
rename命令批量修改文件名
如果需要批量修改多个文件的名称,使用mv命令逐个操作效率很低,这时候可以使用rename命令,它支持通过正则表达式匹配批量处理文件名。
基本语法
rename命令有两种常见的语法格式,不同linux发行版可能默认使用的版本不同,这里介绍通用的perl版本rename语法:
rename [选项] '正则表达式' 文件列表
常用选项说明
- -v:显示详细的修改过程
- -n:模拟执行,不会实际修改文件名,只显示会执行的操作,方便测试
- -f:强制修改,即使遇到错误也不中断
使用示例
将当前目录下所有.txt后缀的文件改为.md后缀:
rename 's/.txt$/.md/' *.txt
将文件名中的test替换为new:
rename 's/test/new/' *
先模拟执行查看效果,不实际修改文件:
rename -n 's/.txt$/.md/' *.txt # 会列出所有会被修改的文件名变化,不会实际执行重命名
两种命令的适用场景对比
为了帮助用户更好地选择使用哪种命令,以下是两种命令的适用场景对比:
| 命令 | 适用场景 | 优势 | 劣势 |
|---|---|---|---|
| mv | 单个文件重命名 | 语法简单,所有linux系统都默认支持 | 不支持批量操作,效率较低 |
| rename | 批量文件重命名 | 支持正则匹配,批量操作效率高 | 语法相对复杂,部分精简系统可能未默认安装 |
注意事项
- 使用mv命令重命名时,如果新文件名已经存在,默认会直接覆盖,建议加上-i选项避免误删文件
- rename命令的正则表达式语法需要准确,建议先用-n选项模拟执行,确认效果后再实际运行
- 修改文件名时需要确保对文件有写权限,否则会提示权限不足无法操作
- 如果文件名包含空格,需要使用引号包裹文件名,避免命令解析错误,例如
mv "old file.txt" "new file.txt"
mvrenamelinux_文件操作文件名修改修改时间:2026-07-04 11:24:22