批量删除过期文件的方法
目录
问题
今天遇到一个问题,具体情况如下:目录 /var/www/html/media/chunks/ 中存在很多临时文件,需要进行删除,但是手动删除的话,会非常的慢,首先,我们查看一下3天前都有哪些文件。
命令如下:
find /var/www/html/media/chunks -mtime +3 -name “.”
查询结果部分截图如下:
粗略算了一下,大概上千个。
手动删除的话,估计要等到天荒地老。
解决
既然需要根据时间来删除过期文件,那么我们必须要知道一些和时间相关的概念。关于文件的时间信息有三个:atime、mtime、ctime,它们的意思分别是:最近访问时间(access time)、最近更改时间(modify time)和最近状态改动时间(change time)。基于我们的诉求,很明显,我需要使用 mtime 时间。
下面通过一个例子来看一下这三个时间的具体表现形式:
好了,既然明确了需要使用 mtime 时间参数,那么就来看一下如何使用这个命令参数吧。
- 方式一
find . -mtime n
其中,n 为数字,意思是在当前目录下 n 天之前的“一天之内”被更改过内容的文件。
- 方式二
find . -mtime +n
其中,n 为数字,意思是在当前目录下 n 天之前(不含 n 天本身)被更改过内容的文件名。
- 方式三
find . -mtime -n
其中,n 为数字,意思是在当前目录下 n 天之内(含 n 天本身)被更改过内容的文件名。
最后,通过一张图来更加形象的理解 n 的实际含义:
好了,现在可以直接上大招啦:
find /var/www/html/media/chunks -mtime +3 -name “.” -exec rm -Rf {} ;
上述命令的作用就是将三天前查询到的文件都删除。
我们再执行最开始的查询命令,发现文件都已经删除了,截图如下:
作者简介:😄大家好,我是 Data-Mining(liuzhen007),是一位典型的音视频技术爱好者,前后就职于传统广电巨头和音视频互联网公司,具有丰富的音视频直播和点播相关经验,对 WebRTC、FFmpeg 和 Electron 有非常深入的了解,😄公众号:玩转音视频。同时也是 CSDN 博客专家、华为云享专家(共创编辑)、InfoQ 签约作者,欢迎关注我分享更多干货!😄
- 点赞
- 收藏
- 关注作者
评论(0)