红联Linux门户
Linux帮助

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

发布时间:2015-11-28 10:21:06来源:linux网站作者:低调小一

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

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


shell脚本删除N天前的文件夹-----附linux和mac上date命令的不同:http://www.linuxdiyf.com/linux/15440.html

使用shell脚本清空文件:http://www.linuxdiyf.com/linux/14991.html

使用C#给Linux写Shell脚本(下篇):http://www.linuxdiyf.com/linux/13694.html

使用C#给Linux写Shell脚本:http://www.linuxdiyf.com/linux/13692.html

linux Shell脚本编码格式:http://www.linuxdiyf.com/linux/14138.html