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


shell脚本删除目录下的指定文件
 
需求
今天做日志备份的时候,由于昨晚替换了备份脚本没有完全测试通过,导致了我的备份目录遭到污染,如图所示:  www.2cto.com  
 
 
我的需求是test1、test2、test3仅存在nginx、coreseek、apche,删除掉所有其他的文件。我可以选择手动的一个个删除,但是身为程序员,各位懂得,写了一个shell脚本,用了for+case,大家有更好的方法欢迎跟帖,肯定是有的,我提示一个find命令,哈哈,看看大家的积极程度了,有留言我肯定回复!
 
shell脚本
[html] 
#!/bin/bash  
  
#1.变量定义  
root="/backup/log"  
dirarr=("test1" "test2" "test3")  
nodelete=("nginx" "coreseek" "system" "apache" "." "..")  
 www.2cto.com   
#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  
 

相关内容

    暂无相关文章