我公司的程序会生成许多不同文件类型的数据。其中一个,.log
文件类型占用了很多空间,因为我不需要日志文件,所以我想在程序创建它们时立即删除它们。不幸的是,我无法禁用日志创建选项,因为程序根本不提供这样的选项。我想知道:在find
循环最佳选项中使用-delete
选项运行while true
,还是有更好/推荐的选项?
while true
do
find -type f -name "*.log" -delete
done
答案 0 :(得分:2)
您可以使用incrond
守护程序监听文件系统更改并在文件出现时删除文件,或者只使用cron删除每分钟* .log文件作为更简单的解决方案。
答案 1 :(得分:1)
如果您安装了inotify-tools(应该是每个Linux发行版的一部分),此脚本将阻止等待文件创建事件并删除相应的文件:
inotifywait -e create --monitor --format "%w%f" ${YOUR_LOG_DIR} | egrep -- line-buffered "\.log$" \
| while read -r file; do
rm -v $file;
done