显示行号

|

选择喜欢的代码风格

默认

GitHub

Dune

LakeSide

Plateau

Vibrant

Blue

Eighties

Tranquil

rename 命令使用正则表达式重命名多个文件。 它由 Perl 编程语言的创建者 Larry Wall 编写。

rename 命令安装:

-bash: rename: command not found

#Debian

apt-get install util-linux

#Ubuntu

apt-get install util-linux

#Alpine

apk add util-linux

#Arch Linux

pacman -S util-linux

#Kali Linux

apt-get install util-linux

#CentOS

yum install util-linux

#Fedora

dnf install util-linux

#OS X

brew install rename

#Raspbian

apt-get install util-linux

#Docker

docker run cmd.cat/rename rename

rename 命令补充说明:

rename 命令根据正则表达式 perlexpr 重命名命名的文件。

如果给定文件未被表达式修改,则不会重命名。如果在命令行上未提供文件名,则将通过标准输入读取文件名。

rename 命令语法:

rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]

rename 命令选项:

-v, --verbose 详细:成功重命名的文件的打印名称。

-n, --no-act 无操作:显示要重命名的文件。

-f, --force 强制:覆盖现有文件。

rename 命令参数:

原字符串:将文件名需要替换的字符串;

目标字符串:将文件名中含有的原字符替换成目标字符串;

文件:指定要改变文件名的文件列表。

rename 命令翻译表达式

翻译类似于替代。 它可以用于将一个字符串转换为另一个字符换字符。 翻译表达式的指定如下:

y/charset1/charset2/

...将字符集 charset1 中的每个字符依次转换为字符集 charset2 中的相应字符。 (这些集与上面的字符集一样,只不过您不需要将它们放在方括号中)例如,翻译表达式:

y/abc/def/

...将每个字母 a 转换为字母 d,每个 b 转换为 e,等等。这也适用于定义为范围的字符集。 例如:

y/a-z/A-Z/

#将每个小写字母转换为等效的大写字母。

rename 命令实例

重命名所有扩展名为 .jpeg 的文件,使其扩展名为 .jpg。

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

对于所有扩展名为 .jpg 的文件,如果它们包含字符串 holiday,则将其替换为 honeymoon。 例如,此命令会将文件 ourholiday001.jpg 重命名为 ourhoneymoon001.jpg :

find -type f -name '*.jpg' | rename 's/holiday/honeymoon/'

重命名所有匹配 * .bak 的文件,以去除其扩展名的文件名。 例如,此命令会将文件 project.bak 重命名为 project。

rename 's/\.bak$//' *.bak

重命名文件,以便将所有大写字母更改为它们的小写字母。

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

rename 支持正则表达式示例:

#字母的替换

rename "s/AA/aa/" * # 把文件名中的AA替换成aa

#修改文件的后缀

rename "s//.html//.php/" * # 把.html 后缀的改成 .php后缀

#批量添加文件后缀

rename "s/$//.txt/" * # 把所有的文件名都以txt结尾

#批量删除文件名

rename "s//.txt//" * # 把所有以.txt结尾的文件名的.txt删掉