#yyds干货盘点#批量删除过期文件的方法

大鹏一日同风起,扶摇直上九万里。这篇文章主要讲述#yyds干货盘点#批量删除过期文件的方法相关的知识,希望能为你提供帮助。
目录
问题
解决


问题今天遇到一个问题,具体情况如下:目录  /var/www/html/media/chunks/ 中存在很多临时文件,需要进行删除,但是手动删除的话,会非常的慢,首先,我们查看一下3天前都有哪些文件。
命令如下:

find /var/www/html/media/chunks -mtime +3 -name "*.*"
【#yyds干货盘点#批量删除过期文件的方法】查询结果部分截图如下: 


粗略算了一下,大概上千个。
手动删除的话,估计要等到天荒地老。

解决既然需要根据时间来删除过期文件,那么我们必须要知道一些和时间相关的概念。关于文件的时间信息有三个:atime、mtime、ctime,它们的意思分别是:最近访问时间(access time)、最近更改时间(modify time)和最近状态改动时间(change time)。基于我们的诉求,很明显,我需要使用 mtime 时间。
下面通过一个例子来看一下这三个时间的具体表现形式:



好了,既然明确了需要使用 mtime 时间参数,那么就来看一下如何使用这个命令参数吧。

  1. 方式一
find . -mtime n 
其中,n 为数字,意思是在当前目录下 n 天之前的“一天之内”被更改过内容的文件。
  1. 方式二
find . -mtime +n
其中,n 为数字,意思是在当前目录下 n 天之前(不含 n 天本身)被更改过内容的文件名。
  1. 方式三
find . -mtime -n
其中,n 为数字,意思是在当前目录下 n 天之内(含 n 天本身)被更改过内容的文件名。
最后,通过一张图来更加形象的理解 n 的实际含义:



好了,现在可以直接上大招啦:

find /var/www/html/media/chunks -mtime +3 -name "*.*" -exec rm -Rf\\;
上述命令的作用就是将三天前查询到的文件都删除。
我们再执行最开始的查询命令,发现文件都已经删除了,截图如下:


?


作者简介:

    推荐阅读