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

shell脚本删除目录下的指定文件

2013-02-01 13:47 731 查看

需求

今天做日志备份的时候,由于昨晚替换了备份脚本没有完全测试通过,导致了我的备份目录遭到污染,如果所示:



我的需求是test1、test2、test3仅存在nginx、coreseek、apche,删除掉所有其他的文件。我可以选择手动的一个个删除,但是身为程序员,各位懂得,写了一个shell脚本,用了for+case,大家有更好的方法欢迎跟帖,肯定是有的,我提示一个find命令,哈哈,看看大家的积极程度了,有留言我肯定回复!

shell脚本

#!/bin/bash

#1.变量定义
root="/backup/log"
dirarr=("test1" "test2" "test3")
nodelete=("nginx" "coreseek" "system" "apache" "." "..")

#2.遍历删除
for dir in ${dirarr[*]}
do
filearr=$(ls $dir);
for file in ${filearr[*]}
do
case $file in
"nginx")
continue;;
"coreseek")
continue;;
"system")
continue;;
"apache")
continue;;
".")
continue;;
"..")
continue;;
*)
rm $root/$dir/$file;;
esac
done
done
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: