Linux命令技巧:如何在Linux下重命名多个文件

我知道我可以用mv命令重命名文件。但是当我想重命名很多文件怎么办?如果为每个文件都这么做将会是很乏味的。有没有办法一次性重命名多个文件?

在Linux中,当你想要改变一个文件名,使用mv命令就好了。然而mv不能使用通配符重命名多个文件。可以用sed、awk或者与xargs结合使用来处理多个文件的情况。然而,这些命令行即繁琐又不友好,并且如果不小心的话还很容易出错。你不会想要撤销1000个文件的错误名吧!

当你想要重命名多个文件的时候,rename 工具或许是最简单、最安全和最强大的命令行工具。这个rename命令实际上是一个Perl脚本,它预安装在所有的现在Linux发行版上。

下面是重命名命令的基本语法。

rename [-v -n -f] <pcre> <files>

<pcre> 是Perl兼容正则表达式,它表示的是要重命名的文件和该怎么做。正则表达式的形式是‘s/old-name/new-name/’。

‘-v’选项会显示文件名改变的细节(比如:XXX重命名成YYY)。

‘-n’选项告诉rename命令在不实际改变名称的情况下显示文件将会重命名的情况。这个选项在你想要在不改变文件名的情况下模拟改变文件名的情况下很有用。

‘-f’选项强制覆盖存在的文件。

下面,就让我们看下rename命令的几个实际例子。

改变文件扩展名

假设你有许多.jpeg的图片文件。你想要把它们的名字改成.jpg。下面的命令就会将.jpeg 文件改成 *.jpg。

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

大写改成小写,反之亦然

有时你想要改变文件名的大小写,你可以使用下面的命令。

把所有的文件改成小写:

# rename ‘y/A-Z/a-z/‘ *

把所有的文件改成大写:

# rename ‘y/a-z/A-Z/‘ *

更改文件名模式

现在让我们考虑更复杂的包含子模式的正则表达式。在PCRE中,子模式包含在圆括号中,$符后接上数字(比如$1,$2)。

比如,下面的命令会将‘imgNNNN.jpeg’变成‘danNNNN.jpg’。

# rename -v ‘s/img_(\d{4})\.jpeg$/dan_$1\.jpg/‘ *.jpeg

img_5417.jpeg renamed as dan_5417.jpg

img_5418.jpeg renamed as dan_5418.jpg

img_5419.jpeg renamed as dan_5419.jpg

img_5420.jpeg renamed as dan_5420.jpg

img_5421.jpeg renamed as dan_5421.jpg

比如,下面的命令会将‘img_000NNNN.jpeg’变成‘dan_NNNN.jpg’。

# rename -v ‘s/img_\d{3}(\d{4})\.jpeg$/dan_$1\.jpg/‘ *jpeg

img_0005417.jpeg renamed as dan_5417.jpg

img_0005418.jpeg renamed as dan_5418.jpg

img_0005419.jpeg renamed as dan_5419.jpg

img_0005420.jpeg renamed as dan_5420.jpg

img_0005421.jpeg renamed as dan_5421.jpg

上面的例子中,子模式‘\d{4}’会捕捉4个连续的数字,捕捉的四个数字就是$1, 将会用于新的文件名。

时间: 2024-08-05 15:31:00

Linux命令技巧:如何在Linux下重命名多个文件的相关文章

如何在Linux下重命名多个文件

在Linux中,当你想要改变一个文件名,使用mv命令就好了.然而mv不能使用通配符重命名多个文件.可以用sed.awk或者与xargs结合使用来处理多个文件的情况.然而,这些命令行即繁琐又不友好,并且如果不小心的话还很容易出错.你不会想要撤销1000个文件的错误名吧! 当你想要重命名多个文件的时候,rename 工具或许是最简单.最安全和最强大的命令行工具.这个rename命令实际上是一个Perl脚本,它预安装在所有的现在Linux发行版上. 下面是重命名命令的基本语法. 是Perl兼容正则表达

Linux下重命名文件或文件夹(mv命令与rename命令)

在Linux下重命名文件或目录,可以使用mv命令或rename命令 mv ------------ mv命令既可以重命名,又可以移动文件或文件夹. 例子:将目录A重命名为B mv A B 例子:将/a目录移动到/b下,并重命名为c mv /a /b/c 其实在文本模式中要重命名文件或目录,只需要使用mv命令就可以了,比如说要将一个名为abc的文件重命名为1234: mv abc 1234 注意,如果当前目录下也有个1234的文件的话,这个文件是会将它覆盖的. rename -----------

20个 Unix/Linux 命令技巧

让我们用这些Unix/Linux命令技巧开启新的一年,提高在终端下的生产力.我已经找了很久了,现在就与你们分享. 删除一个大文件我在生产服务器上有一个很大的200GB的日志文件需要删除.我的rm和ls命令已经崩溃,我担心这是由于巨大的磁盘IO造成的,要删除这个大文件,输入: > /path/to/file.log # 或使用如下格式 : > /path/to/file.log # 然后删除它 rm /path/to/file.log 如何记录终端输出?试试使用script命令行工具来为你的终端

Linux命令大全之二——Linux系统设置命令,非常全!

继上次汇总的Linux命令大全之一(Linux系统管理命令),这次给大家分享的Linux系统设置命令. 这些都是日常常用的命令,对想学习Linux的伙伴们来说可谓是大大滴福利,全是干货~~ alias 功能说明:设置指令的别名. 语 法:alias[别名]=[指令名称] 补充说明:用户可利用alias,自定指令的别名.若仅输入alias,则可列出目前所有的别名设置.alias的效力仅及于该次登入的操作.若要每次登入是即自动设好别名,可在.profile或.cshrc中设定指令的别名. 参 数:若

( 转)Ubuntu下创建、重命名、删除文件及文件夹,强制清空回收站方法

Ubuntu下创建.重命名.删除文件及文件夹,强制清空回收站方法 mkdir 目录名 ——创建一个目录 rmdir 空目录名 ——删除一个空目录 rm 文件名 文件名 ——删除一个文件或多个文件 rm -rf 非空目录名 ——删除一个非空目录下的一切 touch 文件名 ——创建一个空文件 重命名文件(夹) / 移动文件(夹)到指定文件夹echWeb-技术社区5].O"?8H.I执行格式: mv source destination 举例: mv file1 file2 表示将文件 file1,

使用ant剪切、重命名、修改文件访问时间

下面提供几个命令,用来剪切文件.重命名文件.创建或修改文件访问时间,如下: <?xml version="1.0" encoding="UTF-8"?> <project name ="test" default="all" basedir="."> <target name ="all"> <!-- 剪切文件(含过滤条件)--> <

20个linux命令行工具监视性能(下)

昨天晚上第一次翻译了<20 Command Line Tools to Monitor Linux Performance>中的前十个命令,翻译得不是很好,今天晚上继续把后面的十个也翻译给大家吧,第一次写博客,写的不是特别的好,希望大家不要介意,也希望大家觉得有什么不对的地方能够多多指教,毕竟小弟还是初学者.下面我们开始学习下面十个命令吧! 11,Monit –- Linux Process and Services Monitoring Monit  是一个免费开源并且基于web的进程监督实

类型:linux;问题:linux命令;结果:Linux常用命令大全

Linux常用命令大全 QQ空间新浪微博腾讯微博人人网豆瓣网百度空间百度搜藏开心网复制更多1997 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 系统信息 arch 显示机器的处理器架构(1) unam

每天一个Linux命令(23)--linux 目录结构(一)

对于每一个Linux 学习者来说,了解 Linux 文件系统的目录结构,是学好Linux 的至关重要的一步,深入了解Linux 文件目录结构的标准和每个目录的详细功能,对于我们用好Linux 系统至关重要,下面我们就开始了解一下 Linux 目录结构的相关知识. 当在使用Linux 的时候,如果您通过 ls   -l   / 就会发现,在 /  下包涵很多的目录,比如 etc  usr  var   bin  等目录,而在这些目录中,我们进去看看,发现也有很多的目录或文件.文件系统在 Linux