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 {} \;
   
   
   posted on 2013-01-29 15:44 liweilijie 阅读(390) 评论(0) 收藏 举报
                    
                
                
            
        
浙公网安备 33010602011771号