歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> SHELL編程 >> shell腳本刪除目錄下的指定文件

shell腳本刪除目錄下的指定文件

日期:2017/3/1 10:02:12   编辑: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

Copyright © Linux教程網 All Rights Reserved