1)验证原始改名脚本renfile.sh的效果
脚本用途为:批量修改当前目录下的文件扩展名,将.doc改为.txt。
脚本内容参考如下:
[root@svr5 ~]# vim renfile.sh
#!/bin/bash
for FILE in *.doc
do
mv $FILE ${FILE%.doc}.txt
done
[root@svr5 ~]# chmod +x renfile.sh
创建一个测试用的文件夹rendir,并在其下建几个测试文件
[root@svr5 ~]# mkdir rendir
[root@svr5 ~]# cd rendir
[root@svr5 rendir]# touch file1.doc abcde.doc xxyyzz.doc other1.xls killbill.mp4
[root@svr5 rendir]# ls
abcde.doc file1.doc killbill.mp4 other1.xls xxyyzz.doc
调用renfile.sh脚本,查看修改结果(原来扩展名为.doc的文件,其扩展名都变成了.txt):
[root@svr5 rendir]# ../renfile.sh
[root@svr5 rendir]# ls
abcde.txt file1.txt killbill.mp4 other1.xls xxyyzz.txt
2)建立改进版脚本renfilex.sh
要适应不同扩展名文件的修改,并能够反向还原。
修改前的扩展名、修改后的扩展名通过位置变量 $1、$2提供。
改进的脚本编写参考如下:
[root@svr5 rendir]# cp ../renfile.sh ../renfilex.sh
[root@svr5 rendir]# vim ../renfilex.sh
#!/bin/bash
for FILE in "$1"
do
mv $FILE ${FILE%$1}"$2"
done
3)验证、测试改进后的脚本
将 *.doc文件的扩展名改为.txt:
[root@svr5 rendir]# ls //修改前
abcde.txt file1.txt killbill.mp4 other1.xls xxyyzz.txt
[root@svr5 rendir]# ../renfilex.sh .txt .doc
[root@svr5 rendir]# ls //修改后
abcde.doc file1.doc killbill.mp4 other1.xls xxyyzz.doc
将 *.mp4文件的扩展名改为.mkv:
[root@svr5 rendir]# ls //修改前
abcde.doc file1.doc killbill.mp4 other1.xls xxyyzz.doc
[root@svr5 rendir]# ../renfilex.sh .mp4 .mkv
[root@svr5 rendir]# ls //修改后
abcde.doc file1.doc killbill.mkv other1.xls xxyyzz.doc