> 文件与目录管理 > rename

rename: 批量重命名文件工具

rename 命令用于使用正则表达式一次性重命名多个文件。与 `mv` 不同,它在基于模式批量修改文件名时非常有用。

概述

rename 是一个强大的命令,用于根据规则批量更改大量文件名。该命令使用 Perl 正则表达式语法(例如 `s/old_pattern/new_pattern/`)来查找文件名中的特定字符串并替换为其他字符串。例如,它可以轻松自动化将所有 `.jpeg` 扩展名更改为 `.jpg`,或将文件名中的空格更改为下划线 (`_`) 等操作。

主要特点

rename 命令的主要特点如下:

  • 一次性重命名多个文件。
  • 提供基于正则表达式的强大模式替换功能。
  • 与 `mv` 命令逐个更改不同,它针对批量操作进行了优化。
  • 支持 `dry run` 模式,可预览更改结果,防止错误。

rename 与 mv 的区别

rename 和 mv 都用于文件重命名,但在功能和目的上有所不同。

  • rename: 专门用于基于模式批量重命名多个文件。
  • mv: 用于重命名或移动单个文件或目录。若要更改多个文件,需要脚本。

主要选项

根据目的对常用的 rename 命令选项进行了分组。

1) 批量更改

2) 帮助

生成的命令:

请尝试组合命令。

描述:

`rename` 执行命令。

通过组合这些选项,您可以与 AI 一起虚拟地执行命令。

使用示例

通过 rename 命令的各种使用示例来学习其功能。

更改文件扩展名

rename 's/\.jpeg$/.jpg/' *.jpeg

将当前目录下所有 `.jpeg` 扩展名更改为 `.jpg`。

更改文件名的特定字符串

rename 's/^image_/photo_/' *.jpeg

将所有以 `image_` 开头的文件名中的 `image_` 更改为 `photo_`。

将空格更改为下划线

rename 's/ /_/g' *

将文件名中的所有空格 (` `) 更改为下划线 (`_`)。

将大写字母转换为小写字母

rename 'y/A-Z/a-z/' *

将所有文件名中的大写字母转换为小写字母。

预览更改结果

rename -n 's/.html/.txt/' *.html

不实际更改文件,而是提前查看将 `.html` 扩展名更改为 `.txt` 时的结果。

安装

rename 并非所有 Linux 发行版都默认包含,因此需要使用以下命令进行安装。在某些发行版中,包名可能不同,例如 `perl-rename` 或 `prename`。

Debian/Ubuntu

sudo apt update
sudo apt install rename

RHEL/CentOS/Fedora

sudo dnf install prename

Arch Linux

sudo pacman -S perl-rename

提示与注意事项

总结了使用 rename 命令时需要注意的事项。

提示

  • 在正则表达式中,点号 (`.`) 表示任何字符,因此在更改扩展名时,需要使用反斜杠 (`\`) 进行转义,例如 `\.jpeg`。
  • rename 是一个强大的工具,为了防止错误,建议始终先使用 `-n` 选项来确认结果。
  • 如果文件名包含空格,则应使用引号 (`"`) 将其括起来作为参数传递。

相关命令

功能上相似或经常一起使用的命令。


相同类别命令