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 {} \;
现在能正常删除了。
阅读(480) | 评论(0) | 转发(0) |