免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4149 | 回复: 5
打印 上一主题 下一主题

求助!关于按时间删除文件 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-08-28 14:51 |只看该作者 |倒序浏览
大家好,我这有个问题,希望大家帮助给解决下

  一个目录下产生了很多日志文件,我想写一个脚本 只保存最新的一个日志,其余的日志文件全部删除,请问如何实现呢?

  第一次发帖,谢谢大家了。

论坛徽章:
0
2 [报告]
发表于 2010-08-28 15:06 |只看该作者
本帖最后由 xiaopan3322 于 2010-08-28 15:30 编辑

回复 1# guodong124

    说实话,只保存当前的一个,我懒得去想了。。。
    回点和按时间删除有关的好了。
    删除五分钟之前的所有文件:
  1. find ./ -name "*" -mmin +5 -exec rm -rf {} \;
复制代码
删除五天之前的普通文件:
  1. find ./ -type f -mtime 5 -print0 | xargs -0 rm -rf
复制代码
以此类推。。。

论坛徽章:
0
3 [报告]
发表于 2010-08-28 15:12 |只看该作者
  1. for i in `ls -t logfile*|tail -n +2`; do rm -f $i; done
复制代码
删除当前目录中logfile*,只保留最新的一个

论坛徽章:
0
4 [报告]
发表于 2010-08-28 15:22 |只看该作者
删除当前目录中logfile*,只保留最新的一个
ddgfff 发表于 2010-08-28 15:12



    啊,,,杯具,刚想到tail+xargs,

    大军兄,其实不需要for的,直接这样就行了:
  1. ls -t *.log | tail -n +2 | xargs rm -f
复制代码

论坛徽章:
0
5 [报告]
发表于 2010-08-28 15:53 |只看该作者
多谢二位

拜谢,拜谢。

论坛徽章:
0
6 [报告]
发表于 2010-08-29 08:11 |只看该作者
ls -t *log| awk 'NR>1{system("rm -f "$0)}'
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP