shell脚本删除目录下指定文件的例子
时间:2014-11-23 13:44 来源:www.it.net.cn 作者:IT网
有关shell脚本删除目录下指定文件的方法,在shell脚本中for+case命令,也可以结合find命令删除文件。
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
(责任编辑:IT)
有关shell脚本删除目录下指定文件的方法,在shell脚本中for+case命令,也可以结合find命令删除文件。 shell脚本删除目录下指定文件
在日志备份时,由于替换了备份脚本没有完全测试通过,导致了备份目录遭到污染,如图示:
需求: 可以选择手动的一个个删除,写了一个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 |