Linux中按时间批量删除N天前文件

15 篇文章 0 订阅

Linux中按时间批量删除N天前文件


根据时间删除这个目录下的文件,/tmp,清理掉30天之前的无效数据。
可以使用下面一条命令去完成:

find /tmp -mtime +30 -name "*.*" -exec rm -Rf {} \;

这个是根据时间删除。
下面简要解释一下,这句shell命令:

  • /tmp :准备要进行清理的任意目录;
  • -mtime:标准语句写法;
  • +10:查找10天前的文件,这里用数字代表天数,+30表示查找30天前的文件;
  • .”:希望查找的数据类型,".jpg"表示查找扩展名为jpg的所有文件,""表示查找所有文件;
  • -exec:固定写法;
  • rm -Rf:强制删除文件,包括目录;
  • {} \ ; :固定写法,一对大括号+空格++;

注意:删除文件的过程中可能会遇到问题如下所示:find: missing argument to ‘-exec’;
解决方法:在{}和\之间必须要有空格,否则会报这个的错。
此外贴上find 参数说明,方便大家理解。

-amin -n  # 最后一次访问发生在 n分钟 之内
 -amin n #  最后一次访问发生在距离当前时间 n分钟 至 (n+1)分钟
 -amin +n # 最后一次访问发生在 (n+1)分钟 之外
 -atime -n # 最后一次访问发生在 n天 之内
 -atime n # 最后一次访问发生在 n天 至(n+1)天
 -atime +n # 最后一次访问发生在 (n+1)天 之外
 -cmin -n # 最后一次文件状态修改发生在 n分钟 之内
 -cmin n # 最后一次文件状态修改发生在 n分钟 至 (n+1)分钟
 -cmin +n # 最后一次文件状态修改发生在 (n+1)分钟 之外
 -ctime -n # 最后一次文件状态修改发生在 n天 之内
 -ctime n # 最后一次文件状态修改发生在 n天 至 (n+1) 天
 -ctime +n # 最后一次文件状态修改发生在 (n+1)天 之外
 -mmin -n # 最后一次文件内容修改发生在 n分钟 之内
 -mmin n # 最后一次文件内容修改发生在 n分钟 至 (n+1)分钟
 -mmin +n # 最后一次文件内容修改发生在 (n+1)分钟 之外
 -mtime -n # 最后一次文件内容修改发生在 n天 之内
 -mtime n # 最后一次文件内容修改发生在 n天 至 (n+1)天
 -mtime +n # 最后一次文件内容修改发生在 (n+1)天 之外

例如:查找文件内容修改发生在2天之内的文件

find /var/log/hive/-name "*" -mtime -2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.D.Chuang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值