举例讲解Linux中的重命名命令rename的使用方法
举例讲解Linux中的重命名命令rename的使用方法
发布时间:2016-12-27 来源:查字典编辑
摘要:rename用于对文件进行命名管理,可进行批量命名并支持正则表达式,rename命令存在两个版本用法上有所区别一个是C语言版本支持通配符,另...

rename 用于 对文件进行命名管理,可进行批量命名并支持正则表达式, rename命令存在两个版本用法上有所区别 一个是 C语言版本支持通配符,另一个是 Perl版本.支持正则表达式

命令格式:

Usage: rename [-v] [-n] [-f] perlexpr [filenames]

参数说明:

v 显示文件重命名的细节

n 不执行重命名,但会模拟执行重命名,并显示会出现的情况,例如是否会有同名文件冲突等。在重命名前测试很有用。

f 强制覆盖同名文件

常用通配符说明

? 表示一个任意字符

* 表示一个或一串任意字符

常用正则表达式符号说明

^ 匹配输入的开始位置

$ 匹配输入的结尾

. 匹配除换行符外的任意字符

+ 匹配前一个字符一次或多次 例如,"zo+"可以匹配"zoo",但不匹配"z"

[a-z] 表示某个范围内的字符,例如,"[a-z]"匹配"a"与"z"之间的任何一个小写字母字符。

[^m-z] 否定的字符区间。与不在指定区间内的字符匹配。

例子1:显示重命名细节

使用touch命令创建3个txt文件,使用rename命令批量将所有后缀为txt重命名为log

touch a.txt

touch b.txt

touch c.txt

rename -v 's/.txt/.log/' *.txt

v 参数作用,显示文件重命名细节

fdipzone@ubuntu:~$ rename -v 's/.txt/.log/' *.txt

a.txt renamed as a.log

b.txt renamed as b.log

c.txt renamed as c.log

例子2:测试重命名是否遇到同名

touch a.txt

touch b.txt

touch c.txt

touch a.log

touch b.log

rename -n 's/.txt/.log/' *.txt

n 参数作用,不执行重命名,但会显示如果执行重命名会出现的同名情况

fdipzone@ubuntu:~$ rename -n 's/.txt/.log/' *.txt

a.txt not renamed: a.log already exists

b.txt not renamed: b.log already exists

c.txt renamed as c.log

例子3:强制覆盖同名文件

touch a.txt

touch b.txt

touch a.log

touch b.log

rename -f 's/.txt/.log/' *.txt

如果使用 v 参数,会因为同名文件存在而重命名失败

fdipzone@ubuntu:~$ rename -v 's/.txt/.log/' *.txt

a.txt not renamed: a.log already exists

b.txt not renamed: b.log already exists

f 参数作用,强制覆盖同名文件

fdipzone@ubuntu:~$ rename -fv 's/.txt/.log/' *.txt

a.txt renamed as a.log

b.txt renamed as b.log

执行后,a.txt与b.txt重命名为a.log与b.log,覆盖原来的a.log与b.log

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新unix linux学习
热门unix linux学习
操作系统子分类