shell/ target=_blank class=infotextkey>shell脚本删除目录下指定文件
在日志备份时,由于替换了备份脚本没有完全测试通过,导致了备份目录遭到污染,如图示:

需求:
test1、test2、test3仅存在nginx、coreseek、apche,删除掉所有其他的文件。
可以选择手动的一个个删除,写了一个shell脚本,用了for+case,一个linuxjishu/14008.html target=_blank class=infotextkey>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