需求:
找到/123目录下所有后缀名为.txt的文件
批量修改.txt为.txt.bak
把所有.bak文件打包压缩为123.tar.gz
批量还原文件的名字,即把增加的.bak再删除
答案:
#!/bin/bash ##查找txt文件 find /tmp/123 -type f -name "*.txt" > /tmp/txt.list ##批量修改文件名 for i in `cat /tmp/txt.list` do mv $i $i.bak done ##创建一个目录,为了避免目录已经存在,所以要加一个复杂的后缀名 d=`date +%y%m%d%H%M%S` mkdir 123_$d ##把.bak文件拷贝到/tmp/123_$d for b in `cat /tmp/txt.list` do cp $i.bak /tmp/123_$d done ##打包压缩 cd /tmp tar -czf 123.tar.gz 123_$d/ ##还原 for b in `cat /tmp/txt.list` do mv $i.bak $i done ##删除123_$d目录 rm -fr 123_$d