码迷,mamicode.com
首页 > 其他好文 > 详细

find结合重定向符清理文件

时间:2017-09-16 11:50:04      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:find   重定向   清空文件   

大家知道,清理日志文件时,如果该文件正在被某进程使用,则系统不会删除,只会标注为deleted(使用lsof|grep deleted可以查看哪些文件被标注为这个状态),所以这部分的磁盘空间不会释放,那么如何在不重启进程的情况下,让空间释放呢?使用重定向符清空文件即可.

假设日志文件为/var/log/tomcat/info.log,则使用命令:

 > /var/log/tomcat/info.log

当该目录下有多个文件时,可以结合find查找文件,但是使用下面的命令无效(引起Shell的歧义,会在当前目录生成一个文件名为{}的文件):

find /var/log/tomcat/ -type f -name ‘*.log‘ -exce > {} \;   #无效命令

那么可以复杂一点,写个脚本:

for file in `find /var/log/tomcat/ -type f -name ‘*.log‘`;do
  > $file
done

其实最简单的方法是:

find /var/log/tomcat/ -type f -name ‘*.log‘ -exce sh -c ‘> {}‘ \;


本文出自 “每天进步一点” 博客,请务必保留此出处http://kusorz.blog.51cto.com/59379/1965688

find结合重定向符清理文件

标签:find   重定向   清空文件   

原文地址:http://kusorz.blog.51cto.com/59379/1965688

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!