Linux 反向删除文件(排除特定文件)
2015-10-20 10:05
351 查看
前言
因为测试web工程的时候,改改配置什么的,需要重启应用。强迫症的我,每次重启都要清空下日志什么的。想写个shell脚本,依次达到如下效果:
1. 停止tomcat 服务;
2. 清空logs文件夹下的日志;
3. 清空webapps文件夹下自动解压的文件,但偶尔不想删除war包;
4. 重新启动tomcat服务;
5. 屏显下catalina.out里面日志;
第3点里面就有个反向删除的需求。
“反向删除”初探
常用的删除命令是rm,但这货不能自己搞定“反向删除”这事。基本思路:先让grep反向查找,然后删除查找出来的文件&文件夹。
按照这个想法,基本可以用find和ls + grep搞定:
命令组合 | 具体命令行 |
---|---|
rm + ls + grep | rm -rf `ls ./webapps/ | grep **.war` |
rm + find + grep | rm -rf `find ./webapps/ -maxdepth 1 -mindepth 1 | grep -vE *.war` |
比较
注:只针对这个该应用场景:ls | find |
---|---|
在非当前目录(webapps/)执行,达不到删除效果 | 要注意过滤掉目标目录(webapps/) |
最终脚本
#!/bin/sh set -x ./bin/catalina.sh stop rm -rf ./logs/* rm -rf `find ./webapps/ -maxdepth 1 -mindepth 1 | grep -vE *.war` ./bin/catalina.sh start tail -f 5 ./logs/catalina.out
参考
《在 Unix 系统上查找数据的最佳工具和技巧》http://blog.jobbole.com/92811/
相关文章推荐
- Linux内核编译和安装
- linux远程传输文件scp命令
- 使用pyinstaller打包python源代码,成为linux/windows下可执行文件
- Linux下递归读取文件数量
- 15个Linux Yum命令实例--安装/卸载/更新
- CentOS 6.5使用:[3]使用xftp传递文件
- linux项目发布常见命令
- How to install g++ 4.7.2 & c++11 on CentOS 5.x
- 学习日志---linux块组深入,链接,压缩和打包
- linux 内核链表的应用
- Linux启动ssh服务
- linux,python 常用的处理log的命令
- 系统级性能分析工具 — Perf
- cent os linux开机启动到字符界面
- 内核调试工具 — kdump & crash
- 内核调试神器SystemTap — 更多功能与原理(三)
- 内核调试神器SystemTap — 探测点与语法(二)
- 内核调试神器SystemTap — 简介与使用(一)
- linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结
- Linux普通到root用户切换-转