find 命令 mtime 参数(查找N天之前的文件)

Posted catoop

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了find 命令 mtime 参数(查找N天之前的文件)相关的知识,希望对你有一定的参考价值。

find 命令中 有3个参数 -atime-ctime-mtime,其中 -mtime 用的最多。

查看文件的属性信息,可以发现文件有4个关于时间的属性,分别对应如下:

文件属性说明对应 find 的参数
Modify Time最近更改时间-mtime
Access Time最近访问时间-atime
Change Time最近状态改动时间-ctime
Birth Time文件创建时间

其中 Linux 不支持查看文件创建时间,使用命令 stat 查看文件信息示例如下:

[root@harbor backups]# stat hello.txt
  File: ‘hello.txt’
  Size: 0         	Blocks: 0          IO Block: 4096   regular empty file
Device: fd02h/64770d	Inode: 268670193   Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2022-06-16 16:01:03.080050378 +0800
Modify: 2022-06-15 00:00:00.000000000 +0800
Change: 2022-06-16 16:04:20.458226163 +0800
 Birth: -

我们可以使用 find -mtime 来找某时间点之前的文件,并在此基础上进行处理(如定期删除过期文件)。

find -mtime 后跟一个数字参数 +N/-N/N,说明如下:

1、-mtime n : n为数字,意思为在n天之前的“一天之内”被更改过内容的文件
2、-mtime +n : 列出在n天之前(不含n天本身)被更改过内容的文件名
3、-mtime -n : 列出在n天之内(含n天本身)被更改过内容的文件名


示例1

将根目录下24小时内更改过内容的文件列出

find / -mtime 0

示例2

将根目录下5天之内被更改过内容的文件列出

find / -mtime -5

示例3

将根目录下5天前的那一天被更改过内容的文件列出

find / -mtime 5

示例4

将根目录下5天之前被更改过内容的文件列出

find / -mtime +5

图示如下:

由以上时间轴可以看出,最右边为当前时,+5 代表大于等于 6 天前的档案名, -5 代表小于等于 5 天内的档案名,5 则是代表 5-6 那一天的档案名。


(END)

开发者涨薪指南 48位大咖的思考法则、工作方式、逻辑体系

以上是关于find 命令 mtime 参数(查找N天之前的文件)的主要内容,如果未能解决你的问题,请参考以下文章

find命令使用

shell 中的find命令时间参考点?

linux的find的命令用法

Linux之find命令

Linux命令之find命令中的-mtime参数

find mtime参数+号,-号,不带符号的用法