概述
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` 选项来确认结果。
- 如果文件名包含空格,则应使用引号 (`"`) 将其括起来作为参数传递。