在linux系统中,重命名文件是日常操作里非常常见的需求,不同的场景适合用不同的方法,下面详细介绍几种常用的linux重命名文件方式。

一、使用mv命令重命名单个文件
mv是linux里最基础的文件移动和重命名命令,当只需要重命名单个文件时,用mv是最直接的选择。它的基本语法是mv 原文件名 新文件名,如果新文件名和原文件在同一个目录下,就相当于执行重命名操作。
举个例子,要把当前目录下的test.txt重命名为demo.txt,执行下面的命令即可:
# 重命名单个文件 mv test.txt demo.txt
需要注意的是,如果当前目录下已经存在demo.txt,执行上面的命令会直接覆盖原有文件,没有提示。如果希望覆盖前提示确认,可以加上-i参数:
# 覆盖前提示确认 mv -i test.txt demo.txt
二、使用rename命令批量重命名文件
当需要批量重命名多个文件时,mv命令就不太方便了,这时候可以用rename命令。rename命令支持正则表达式匹配,能快速完成批量修改文件名、修改后缀等操作。不同linux发行版的rename命令语法略有差异,下面以常见的perl版本的rename为例说明。
比如要把当前目录下所有.txt后缀的文件改成.md后缀,执行下面的命令:
# 批量修改文件后缀,把txt改成md rename 's/.txt$/.md/' *.txt
如果不确定命令执行后的效果,可以先加上-n参数模拟执行,不会实际修改文件,只会输出会执行的操作:
# 模拟执行,查看修改效果 rename -n 's/.txt$/.md/' *.txt
rename命令还支持更复杂的规则,比如给所有文件名前面加上前缀new_:
# 给所有txt文件加前缀new_ rename 's/^/new_/' *.txt
三、使用bash脚本自定义规则重命名
如果重命名规则比较复杂,比如需要根据文件的创建时间、文件内容来重命名,用mv或者rename命令都不太方便,这时候可以写简单的bash脚本来实现。bash脚本可以灵活组合各种命令,实现自定义的重命名逻辑。
下面是一个简单的示例脚本,把当前目录下所有.log文件按照创建时间重命名,文件名格式为log_创建时间.log:
#!/bin/bash
# 遍历当前目录下所有log文件
for file in *.log; do
# 获取文件的创建时间,格式为YYYYMMDD_HHMMSS
create_time=$(stat -c %W "$file" | date -d @- "+%Y%m%d_%H%M%S")
# 拼接新文件名
new_name="log_${create_time}.log"
# 执行重命名
mv "$file" "$new_name"
done
使用时只需要把上面的代码保存为rename_log.sh,然后给脚本添加执行权限,运行即可:
# 添加执行权限 chmod +x rename_log.sh # 运行脚本 ./rename_log.sh
不同方法适用场景总结
为了更方便选择适合的重命名方法,下面整理了不同方法的适用场景:
| 方法 | 适用场景 | 优点 |
|---|---|---|
| mv命令 | 单个文件重命名 | 语法简单,系统自带,无需额外学习成本 |
| rename命令 | 批量文件重命名,规则简单 | 支持正则,批量操作效率高 |
| bash脚本 | 复杂规则的重命名,需要自定义逻辑 | 灵活度高,可实现任意自定义规则 |
以上就是linux环境下常用的几种重命名文件方法,你可以根据自己的实际需求选择合适的方式,快速完成文件重命名操作。
linuxrename_filemv_commandrename_commandbash_script修改时间:2026-06-09 20:27:24