顾名思义,rename命令就是用来进行重命名文件名的。rename命令有非常强大的功能,我们可以用它来实现各种各样复杂的文件名的修改。但是,本文只介绍它最最基本的功能,后期再更新rename其它强大的重命名功能。rename的最基本的格式如下:

rename 源字符串 目标字符串 文件 

其中,源字符串表示原文件名需要替换的字符串,可以是原文件名的全部或部分;目标字符串就是想要替换成的字符串;文件就是需要更改文件名的文件列表,可以是一个或多个。

现假如目录下有一堆 atb_mod_01.cpp,atb_mod_02.cpp,atb_mod_03.cpp,atb_mod_04.cpp 等形式的文件,我们的需求是将文件名中的 mod 改成 adb,那么完成这个需求的命令如下:

[alvin@VM_0_16_centos exp3]$ ls 

atb_mod_01.cpp  atb_mod_02.cpp  atb_mod_03.cpp  atb_mod_04.cpp[alvin@VM_0_16_centos exp3]$ rename mod adb *[alvin@VM_0_16_centos exp3]$ lsatb_adb_01.cpp  atb_adb_02.cpp  atb_adb_03.cpp  atb_adb_04.cpp 

2. mv命令配合for循环方式

假如我们现在有一堆 .txt 文件,我们想将它们的后缀改成 .cpp。先来看完整的代码:

#!/bin/bash 

for name in `ls *.txt` 

do 

    mv $name ${name%.txt}.cpp 

done 

我们都知道,在Linux里重命名是用 mv 命令,那批量重命名自然会想到用循环语句嵌套mv命令。

在这里,我们用 ls *.txt 将当前目录下所有的txt文件全部列出来,然后逐个放在name变量里去循环操作。

在循环体里,我们使用mv命令进行重命名。这里我们使用 ${name%.txt} 这种字符串处理方式,表示从name尾部开始删除与 .txt 匹配的最小部分,并返回剩余部分。之后,再加上 .cpp 后缀。通过这种操作,我们就可以将文件名后缀从.txt改为.cpp。最后我们用mv命令将这个文件名真正改过来。

dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。