Linux删除指定时间的文件(比如几分钟前(后),几天前(后))
发表于:2021-12-30 |

要执行这个命令分三步:
1、先找出该目录下名字符合的文件;
2、过滤出指定时间内的文件;
3、执行删除命令。

1 找出指定条件的文件 - find 命令
比如找出当前目录下的所有txt文件

find ./ -name ‘*.txt’

2 找出指定时间的文件
找出最后20分钟内访问的文件

find ./ -name ‘*.txt’ -amin -20 -ls

找出最后1天内访问的文件

find ./ -name ‘*.txt’ -atime -1 -ls

找出最后20分钟内内修改过的文件

find ./ -name ‘*.txt’ -mmin -20 -ls

找出最后1天内修改过的文件

find ./ -name ‘*.txt’ -mtime -1 -ls

找出最后20分钟内状态改变的文件

find ./ -name ‘*.txt’ -cmin -20 -ls

找出最后2天内状态改变的文件

find ./ -name ‘*.txt’ -ctime -2 -ls

以上是某时间之内的文件,那么某时间之前的呢?

找出20分钟之前访问的文件

find ./ -name ‘*.txt’ -amin +20 -ls

找出最后1天前访问的文件

find ./ -name ‘*.txt’ -atime +1 -ls

其他的就不一一列举了,大家只要知道 +n 表示n之前时间,,-n 表示 n之后时间, n 表示 n 时间

3 执行删除命令
-exec rm {} ;

那么,组合之后就是:

find ./ -name ‘*.txt’ -amin -20 -ls -exec rm {} ;

表示删除20分钟之内访问过的文件。

上一篇:
docker内运行的grafana重置登录密码
下一篇:
shell-删除指定时间前的文件