上一篇
Linux中更改文件名主要使用
mv命令,基本语法为:
mv 旧文件名 新文件名,该命令也可用于移动文件位置或同时重命名多个文件。
基础方法:mv命令(最常用)
mv(move)命令用于移动或重命名文件/目录。
语法:
mv [选项] 源文件 目标文件
重命名单个文件
mv old_filename.txt new_filename.txt
- 示例:将
report.docx改为final_report.docxmv report.docx final_report.docx
重命名并移动文件到其他目录
mv /home/user/docs/file.txt /home/user/archive/renamed_file.txt
覆盖保护(避免误操作)
- 添加
-i选项:若目标文件已存在,会提示确认mv -i old.txt new.txt
- 使用
-n选项:禁止覆盖已存在文件mv -n file.txt existing_folder/ # 若目标存在,放弃操作
批量重命名:rename命令
适用于按规则批量修改文件名(如统一修改后缀、替换关键词)。
安装(部分系统需手动安装):
# Debian/Ubuntu sudo apt install rename # CentOS/RHEL sudo yum install prename
基础语法
rename 's/原字符串/新字符串/' 文件匹配模式
常见场景
- 修改后缀名:将所有
.jpeg改为.jpgrename 's/.jpeg$/.jpg/' *.jpeg
- 替换文件名中的字符:将文件名中的
space替换为_rename 's/ /_/g' * # "g"表示全局替换
- 添加前缀:
rename 's/^/prefix_/' *.txt
图形界面操作(适合新手)
-
文件管理器(如Nautilus、Dolphin):

- 右键点击文件 → 选择“重命名”(或按
F2)。 - 批量操作:选中多个文件 → 右键重命名 → 按规则修改(如添加序列号)。
- 右键点击文件 → 选择“重命名”(或按
-
跨平台工具:
- 使用
Thunar(XFCE默认管理器)的批量重命名工具:thunar -B # 打开批量重命名界面
- 使用
高级技巧:递归重命名与find结合
递归修改子目录中的文件
find . -name "*.md" -exec rename 's/.md$/.markdown/' {} ;
- 解释:查找当前目录(含子目录)所有
.md文件,将其后缀改为.markdown。
配合sed生成新文件名(复杂规则)
find . -type f -name "*.log" | while read file; do new_name=$(echo "$file" | sed 's/error/debug/') mv "$file" "$new_name" done
注意事项(避免数据损失)
- 备份重要文件:
执行批量操作前,建议备份:
cp -r original_folder/ backup_folder/
- 测试命令效果:
- 使用
echo预览mv操作:for f in *.txt; do echo mv "$f" "${f%.txt}.text"; done rename命令添加-n选项(模拟运行):rename -n 's/old/new/' *.txt # 仅显示更改,不执行
- 使用
- 避免特殊字符:
文件名含空格或特殊符号时,用引号包裹:mv "file with spaces.txt" new_name.txt
- 权限问题:
若提示Permission denied,使用sudo(需谨慎)或检查文件权限:ls -l filename # 查看权限 chmod u+w filename # 添加用户写入权限
方法对比
| 场景 | 推荐命令 | 优势 |
|---|---|---|
| 单个文件重命名 | mv |
简单直接,无需安装 |
| 按规则批量修改 | rename |
支持正则表达式,高效批量处理 |
| 递归修改子目录文件 | find + rename |
灵活处理嵌套目录 |
| 图形界面操作 | 文件管理器 | 适合新手,避免命令行误操作 |
- 简单操作:优先使用
mv命令。 - 批量处理:掌握
rename的正则表达式。 - 安全第一:始终用
-i或-n测试命令,并备份关键数据。
引用说明:
mv和rename命令参考GNU Coreutils官方文档(https://www.gnu.org/software/coreutils/)。- 文件权限管理部分依据Linux Man Page标准(
man chmod)。- 安全建议基于Linux系统管理最佳实践(Red Hat Enterprise Linux文档)。

