【Linux】文件批量重命名

例如:我们现在有如下文件列表

image

我们现在想要把.log、.LOG与.rar为扩展名的文件全部重新命名,具体脚本如下:

#!/bin/sh
##----------------------------------------------------------
##--功能说明:重命名.log与.rar文件
##--开发公司:XXX
##--作者:qys
##--时间:2019-01-02
##--输入参数:无
##--版本维护
##      版本:      更新日期:        更改人:        更改说明:
##      --------------------------------------------------------
##      v1.0        2019-01-02          qys         创建shell脚本
##--------------------------------------------------------------
count=1
for ListLogFile in `find . -iname '*.log' -o -iname '*.rar' -type f`
do
	new=Tmp_$count.${ListLogFile##*.}
	echo "重命名${ListLogFile}为${new}"
	mv "$ListLogFile" "$new"
	let count++
done

执行结果:

image

工作原理:

使用for循环迭代所有扩展名为.log、.rar文件,然后使用-iname选项不区分大小写进行匹配,-o表示或者的关系,此处为多个匹配条件,接着使用${ListLogFile##*.}提取扩展名,并且构造新的文件名,最后使用mv命令重命名。



原文地址:https://www.cnblogs.com/OliverQin/p/10249000.html