我想删除除当前日志和之前日志之外的所有日志。 这些日志文件是在 20 分钟后创建的。所以文件名是这样的
abc_23_19_10_3341.log
abc_23_19_30_3342.log
abc_23_19_50_3241.log
abc_23_20_10_3421.log
23 是今天的日期(也可能包括昨天的日期) 19 是小时(7 点钟),10,30,50,10 是分钟。
在这种情况下,我想保留 abc_23_20_10_3421.log,这是当前日志(当前正在写入)和 abc_23_19_50_3241.log(前一个) 并删除其余部分。
我通过创建一个文件夹,将第一个文件放入该文件夹并删除文件然后删除它来让它工作。但这太长了...
这个我也试过
files_nodelete=`ls -t | head -n 2 | tr '\n' '|'`
rm *.txt | egrep -v "$files_nodelete"
但它没有用。但是如果我用 ls 而不是 rm 它就可以用。
我是 linux 的业余爱好者。所以请提出一个简单的想法..或逻辑..xargs rm 我试过但没有用。
还阅读了有关 mtime 的内容,但由于我是 linux 新手,所以看起来有点复杂
在 solaris 系统上工作
最佳答案
试试 Solaris 中的 logadm 工具,它可能是轮转日志的最简单方法。如果您只想完成任务,它会完成。
http://docs.oracle.com/cd/E23823_01/html/816-5166/logadm-1m.html
关于linux - Rm 和 Egrep -v 组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28113414/