要执行这个命令分三步:
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分钟之内访问过的文件。