delete file

delete file

delete file

1 删除文件

今天一同事问我,有没有一个shell命令可以删除一个目录下除一类文件以外的所有文件。于是想了半天,后来还是投机取巧想了一个不是很好的。


####利用find命令来删除,find命令的非运算是"\!"来表示的
find ./ -type f \! -name 'liwei*' -exec rm -rf {} \;


####也可以用``来完成
rm -rf `ls | grep -v 'liwei*'`

find命令博大精深,要好好学习。

2 更高效地删除

2.1 问题:

tmp 目录下有大量包含 select_* 的临时文件,每天晚上 2:30 对一天前的文件进行清理。

之前在 crontab 下增加如下脚本,但是发现脚本效率很低,每次执行时负载猛涨,影响到其他服务。


find /tmp -name "select_*" -mtime +1 -exec rm -f {} \;

2.2 原因:

目录下有大量文件,用 find很耗资源

2.3 解决:


cd /tmp
time=`date -d "2 day ago” “+%b %d"`
ls -l|grep "select" |grep "$time"|awk ‘{print $NF}’|xargs rm -rf #


2.4 Delete

   
   find ./ -maxdepth 1 -type f -mmin +10 -name '*.txt' -exec rm -rf {} \;
   
   

Date: 2013-01-29 Tue

Author: liweilijie

Org version 7.9.2 with Emacs version 23

Validate XHTML 1.0

posted on 2013-01-29 15:44  liweilijie  阅读(366)  评论(0编辑  收藏  举报

导航