15%

Save 15% on All Hosting Services

Test your skills and get Discount on any hosting plan

使用代码:

Skills
开始使用
27.01.2026

如何在Linux终端中重命名文件

重命名文件是任何操作系统中最常见的任务之一——在 Linux 中,通过终端进行重命名时尤其强大。从简单的名称更改到使用模式的复杂批处理操作,重命名是一个必不可少的工具,用于:

  • 按日期、类型或项目 组织文件
  • 自动清理 日志、备份或临时数据
  • 标准化文件名 用于脚本、部署或 APIs
  • 在开发、研究或数据科学环境中 预处理数据
  • 集成到 CI/CD、图像处理或版本控制的管道中

无论您是重命名数千个图像文件的开发人员,清理旋转日志的系统管理员,还是为部署准备工件的 DevOps 工程师——了解如何在终端中高效重命名文件将节省时间,减少错误,并在规模上解锁自动化。

使用 mv 进行基本文件重命名

mv(移动)命令是重命名文件的标准方法:

mv old_filename.txt new_filename.txt

这适用于:

  • 重命名文件
  • 将文件移动到新目录
  • 同时进行这两项操作

示例:

mv file.txt ../archive/renamed_file.txt

重命名多个文件 — 高级技术

1. 🔁 使用 rename(基于 Perl)

最强大和灵活的方法。

安装(如果缺失):

sudo apt install rename # Debian/Ubuntu
sudo dnf install prename # RHEL/Fedora

基本用法:

rename 's/old/new/' *.txt

这将重命名所有 .txt 文件,将文件名中的 “old” 替换为 “new”。

示例:

目标命令
为所有 .jpg 文件添加前缀rename ‘s/^/IMG_/’ *.jpg
从文件名中删除 .bakrename ‘s/.bak$//’ *.bak
将 .JPG 更改为 .jpgrename ‘s/.JPG$/.jpg/i’ *.JPG
用下划线替换空格rename ‘s/ /_/g’ *

使用 mmv

另一个方便的工具,尽管不如 “rename” 灵活。

安装:

sudo apt install mmv

示例用法:

mmv "*.jpg" "photo_#1.jpg"

使用 find + mv + bash(用于复杂逻辑)

示例:递归地将 .txt 文件中的破折号替换为下划线。

find . -type f -name "*.txt" | while read file; do
new=$(echo "$file" | sed 's/-/_/g')
mv "$file" "$new"
done

这安全、灵活,并且可以在嵌套目录中工作。

使用 for 循环重命名

示例:为所有 .log 文件添加前缀

for f in *.log; do
mv "$f" "archived_$f"
done

您可以使用更多的 bash 脚本逻辑进行自定义(如子字符串替换、扩展名、时间戳等)

最佳实践

  • 在批量重命名之前始终进行测试:

    rename -n 's/ /_/g' *

    -n 是 干运行 — 显示将会发生的情况,但不做任何更改。

  • 引用您的变量以处理带有 空格特殊字符 的文件名

  • 在重命名数千个文件之前使用版本控制或备份

15%

Save 15% on All Hosting Services

Test your skills and get Discount on any hosting plan

使用代码:

Skills
开始使用