我有一个自定义应用程序,可以为每个订单创建日志文件。日志文件具有随机名称。我想只保留10个最新文件。
到目前为止,我来到这里:
ls -lrth /var/log/myapp/ | awk {'print $9'} | tail -n10
此命令为我提供了10个最新文件的列表。现在,除了这些文件,我想删除其他所有内容。有没有办法获得除这10个最新文件之外的所有文件的列表,或者如何删除除这10个文件之外的所有文件?
干杯, 彼得
答案 0 :(得分:2)
此查找将为您提供除最近10个最新修改文件之外的所有文件:
find . -exec stat --format="%X" + | sort -n | tail -n+10
使用ls
的类似列表:
ls -lt|tail -n+10
答案 1 :(得分:-1)
for i in $(ls -lrth /var/log/myapp/ | awk {'print $9'} | head -n -10) ; do echo $i ; done
检查输出,如果满意,用rm替换echo。