linux 删除指定日期之前的文件

find.-mtime+n-typef|xargsrm-f这个只能删除以当前时间为基准n*24小时之前的,怎么删除比如8月20日之前的文件,要求把当天日期的文件也全部删掉... find . -mtime +n -type f | xargs rm -f 这个只能删除以当前时间为基准n*24小时之前的,怎么删除比如8月20日之前的文件,要求把当天日期的文件也全部删掉。 展开
 我来答
hixtao
2013-09-04 · TA获得超过1099个赞
知道小有建树答主
回答量:468
采纳率:85%
帮助的人:326万
展开全部

你的意思是删除某天之前的所有文件对吧?比如21号之前的文件,就是你所说的20日之前的文件,以及20日当天的文件。我没理解错吧?

我像你们一样,首先,通过find查找文件。

然后计算,文件修改日期是否在限定的日期之前,如果是,那么删除文件。


我把命令写到了bash脚本里面。

使用方法:

chmod +x  ./del_file_before_that_day.sh        #给文件添加执行权限

./del_file_before_that_day.sh  "2013-8-21"

回车,

拖动要处理的文件夹到终端,即可完成处理。


楼主,你可以参考一下。顺便说一下,我把rm命令注释掉了,等你测试好脚本,再去除注释吧,以免因为执行环境不同,结果出偏差,给你带来损失。

帐号已注销
2015-08-22 · TA获得超过4.5万个赞
知道大有可为答主
回答量:1.2万
采纳率:77%
帮助的人:2193万
展开全部
假如在一个目录中保留最近30天的文件,30天前的文件自动删除
#find /tmp -mtime +30 -type f -name *.sh[ab] -exec rm -f {} ;/tmp –设置查找的目录;
-mtime +30 –设置时间为30天前;
-type f –设置查找的类型为文件;
-name *.sh[ab] –设置文件名称中包含sha或者shb;
-exec rm -f –查找完毕后执行删除操作;
提示:将此命令写入crontab后即可自动完成查找并删除的工作
另外的方法大同小异:
#find /tmp -mtime +30 -type f | xargs rm -rf
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
rebecca1589
2013-08-22 · TA获得超过934个赞
知道小有建树答主
回答量:2700
采纳率:15%
帮助的人:360万
展开全部
假如在一个目录中保留最近30天的文件,30天前的文件自动删除
  #find /tmp -mtime +30 -type f -name *.sh[ab] -exec rm -f {} \;
  /tmp --设置查找的目录;
  -mtime +30 --设置时间为30天前;
  -type f --设置查找的类型为文件;
  -name *.sh[ab] --设置文件名称中包含sha或者shb;
  -exec rm -f --查找完毕后执行删除操作;
  提示:将此命令写入crontab后即可自动完成查找并删除的工作
  另外的方法大同小异
  #find . -mtime +30 -type f | xargs rm -rf
追问
这个不能按整天截取,然后删除。
#find /tmp -mtime +1 -type f -name *.sh[ab] -exec rm -f {} \;
删除的不是一天前的,而是以现在时间为起点,24小时的文件。这样把 整天的文件就截断了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式