首页 > 其他 > 详细

find结合重定向符清理文件

时间:2017-09-16 11:25:03      阅读:298      评论:0      收藏:0      [点我收藏+]

大家知道,清理日志文件时,如果该文件正在被某进程使用,则系统不会删除,只会标注为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结合重定向符清理文件

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!