首页 帮助中心 美国云服务器 Linux批量文件重命名工具rename详解
Linux批量文件重命名工具rename详解
时间 : 2024-12-18 10:15:25 编辑 : 华纳云 阅读量 : 225

Linux中经常会使用mv命令来重命名单个文件,但是在终端中想快速重命名多个或者一组文件这个任务会更复杂。可以借助linux附带的强大内置工具rename完成。可以完成重命名多个文件或文件组、把文件名转换成小写、把文件名转换为大写及使用Perl表达式来覆盖文件。下面华纳云整理了关于rename在linux中有效重命名多个文件的使用示例,希望对大家有所帮助。

rename是一命令行使用程序,允许使用正则表达式一次重命名多个文件,正则表达式是用来匹配字符串中字符组合的模式。这种方法在特定模式或者规则批量重命名文件中特别有效。

rename属于Perl脚本的一部分,位于大部分linux发行版的/usr/bin/下。可以用which找出重命名命令的具体位置:

which rename

/usr/bin/rename

重命名的基本语法:

rename 's/old_pattern/new_pattern/' files

s/old_pattern/new_pattern/:这是 rename 使用的替换命令,它告诉 rename用new_pattern替换old_pattern。files:指定您要重命名的文件。

rename 命令还附带一些可选参数以及指导 rename 命令执行实际工作的强制性perl 表达式。

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

-v:打印成功重命名的文件的名称。-n:显示哪些文件已被重命名。-f:强制覆盖现有文件。perlexpr:Perl 表达式。

Linux中安装rename,先确认系统上是否安装rename:

rename --version

如未安装,可以使用包管理来安装:

sudo apt install rename [在Debian、Ubuntu 和 Mint 上]

sudo yum install prename [在RHEL/CentOS/Fedora和Rocky/AlmaLinux 上]

sudo emerge -a sys-apps/rename [在Gentoo Linux上]

sudo apk add rename [在Alpine Linux上]

sudo pacman -S rename [在Arch Linux上]

sudo zypper install rename [在OpenSUSE上]     

sudo pkg install rename [在 FreeBSD 上]

如有一堆带有".html"扩展名的文件,并且想要一次性将所有".html"文件重命名为。".php"

为此,首先更改到包含.html文件的目录,然后使用ls 命令列出所有具有.html扩展名的文件。

cd /path/to/your/files

ls -l *.html

在通过重命名命令将文件的扩展名改为.php:

rename 's/\.html$/\.php/' *.html

's/\.html$/.php/':这是一个 Perl 表达式,其中s/表示替换。\.html$匹配.html文件名末尾的扩展名,并将/.php/其替换为.php。*.html:这指定该命令应应用于所有具有该.html扩展名的文件。

ls命令可以用来验证文件是否已被重命名。

ls -l *.php

输出结果中可以看到所有的html文件都重命名为php。

在执行关键或重大的重命名任务时,能随时通过运行带有参数的重命名命令来检查更改-n,准确地显示将发生哪些更改,但这些更改不会真正执行。如:

rename -n 's/\.html$/\.php/' *.html

上述命令能显示更改,但实际更改还没有完成。

默认下, rename命令不显示有关其所做的更改的信息。如想查看有关重命名的详细信息(类似于使用选项进行试运行),请使用该选项,它将打印rename命令所做的所有更改的完整详细信息。

rename -v 's/\.html$/\.php/' *.html

Linux中还可以轻松实现大小写转换,如批量重命名所有小写文件为大写。

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

如批量重命名所有大写文件为小写:

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

要仅将每个文件名的首字母大写,请使用以下命令。

rename 's/\b(\w)/\U$1/g' *.html

想强制覆盖现有文件,请使用“ -f ”选项,如下所示。

rename -f 's/a/b/' *.html

华纳云 推荐文章
Linux中使用mmv重命名文件并高级重命名方法 Linux中用 Wget 下载时重命名文件 CentOS 7 /lib64被重命名后的解决
客服咨询
7*24小时技术支持
技术支持
渠道支持