Chinaunix首页 | 论坛 | 博客
  • 博客访问: 376630
  • 博文数量: 166
  • 博客积分: 1972
  • 博客等级: 上尉
  • 技术积分: 1845
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-19 21:16
文章分类

全部博文(166)

文章存档

2013年(7)

2010年(159)

分类:

2010-10-12 13:36:24

Linux 下如何删除10天前的文件?

要求:
1. 以天为单位
2. 考虑夏令时因素

如果不考虑以上两个要求,想到linux下强大的find命令,可以很容易的写出如下命令:
# find /my_dir -type f -mtime +10 -exec rm {} \;
type 指定文件类型, mtime指定修改时间,+10指定10天前的

考虑到以天为单位,可以添加上-daystart,命令如下:
# find /my_dir -type f -daystart -mtime +10 -exec rm {} \;
排除夏令时因素,能满足我的要求了,但是在夏令时情况下又不能满足要求了

于是想起touch可以修改文件时间,是否可以结合使用呢?
1. 取得10天前的日期(月日)
# date -d "-10 days" +%m%d
2. 创建10天前0点的文件
# touch -m -t `date -d "-10 days" +%m%d`0000.00 /tmp/flag
3. 删除10天前的所有文件
# find /my_dir -type f -not -newer /tmp/flag -exec rm {} \;
现在能正常删除了。
阅读(452) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~