您的位置:首页 > 运维架构 > Shell

linux shell脚本_文件的批量删除_3.0_最终版

2011-04-11 09:07 323 查看
接上一版本,其实要删除文件,只需要从文本中提取文件名即可,这样可以省去大量的代码

而且现在的要求是把最新两个时间点的最新文件,也就是只有两个文件保存

这样,就简单了很多

看代码

#!/bin/sh
#just a test
BACK="back.recovery"
#最后一行内容
lastline=`tail -n 1 $BACK`
echo "lastest file" $lastline
#最后一行的时间----最新时间
lastdate=${lastline:0-19:10}
#总行数
totallines=`grep -c "" $BACK `
#最新文件的行数
lastlines=`grep -c "$lastdate" $BACK `
#除了最新文件所有剩余文件最后一行行号
lastoneline=`expr $totallines - $lastlines`
#倒数第二新file
lastonefile=`sed -n "$lastoneline"p $BACK `
echo "倒数第二新file"$lastonefile
echo $lastonefile > back.re
echo $lastline >> back.re
#倒数第二新的时间
lastonedate=${lastonefile:0-19:10}
#最新两个时间点文件的文件名
lastfile1=${lastline:0-27}
lastfile2=${lastonefile:0-27}
echo "save file:" $lastfile1 ===== $lastfile2
#mkdir temps
mv open.war* temps/
cd temps/
#把需要的文件移出
mv ${lastfile1} ..
mv ${lastfile2} ..
#删除过期文件 和 临时文件夹
rm open*
cd ..
rmdir temps/
echo "deleted ..........."
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: