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

需求
今天做日志备份的时候,由于昨晚替换了备份脚本没有完全测试通过,导致了我的备份目录遭到污染,如果所示:
我的需求是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