需求:
| 找到/123目录下所有后缀名为.txt的文件 批量修改.txt为.txt.bak 把所有.bak文件打包压缩为123.tar.gz 批量还原文件的名字,即把txt.bak改回txt |
模拟环境:
| [root@liang ~]# mkdir /123 [root@liang ~]# cd /123/ [root@liang 123]# touch {a..d}.txt [root@liang 123]# touch {1..5}.txt [root@liang 123]# touch {1..5}.tst [root@liang 123]# touch {a..d}.tst [root@liang 123]# for i in `seq -w 05`;do mkdir ${i}.txt;done |
脚本答案:
| [root@liang 2018-06-15]# cat rename.sh #!/bin/bash Dir=/123 suffix1=txt suffix2=txt.bak Find="find . -type f -name" cd $Dir for i in `$Find "*.${suffix1}"` do /usr/bin/rename $suffix1 $suffix2 $i done /usr/bin/tar zcf 123.tar.gz `$Find "*.${suffix2}"` if [ $? -eq 0 ];then for i in `$Find "*.${suffix2}"` do /usr/bin/rename $suffix2 $suffix1 $i done fi |
本文介绍了一种在Linux环境下批量修改文件名并进行压缩备份的方法。通过Shell脚本实现将指定目录下的.txt文件统一更改为.txt.bak后缀,并将这些文件压缩成123.tar.gz存档。最后脚本会将文件名还原。
1549

被折叠的 条评论
为什么被折叠?



