find結合重定向符清理文件
阿新 • • 發佈:2017-09-16
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結合重定向符清理文件