如何按日期查找最近的文件?

如果我想按名称查找文件,请执行以下操作:

find -name app 

如果我想按类型查找文件,请执行以下操作:

 find -name app -type d 

但是,因为app是这样的通用名称,所以会出现许多结果。 我想找到一个名为app的目录,它是今天创建的。 是否有标志或命令来实现这一目标?

搜索整个文件系统( /

  • 目录( -type d ),
  • app-name app ),
  • 最近修改过的一天(即24小时)(- -mtime 0 ),

…使用:

 find / -name app -type d -mtime 0 

资料来源: man find

特别是看-mtime标志和“ find $HOME -mtime 0 ”示例的解释:

[T] o match -mtime 0 ,文件必须在过去小于24小时前进行修改。

(因此,为了与-mtime匹配,将文件修改后的天数舍入为最接近的整数 。)


创建被视为文件时间戳目的的一种修改forms,因此即使文件的内容在创建后没有被更改,这也会起作用。 它还会将文件夹与之前创建的最后一天的修改时间戳匹配,但您可能没有很多这样的文件夹,其确切名称为app

创建文件时通常不会存储在文件系统中。 但是存储其元数据最后更改的时间 (例如,名称/位置,所有权,权限)。 如果您希望在修改文件内容时使用-ctime代替-mtime

 find / -name app -type d -ctime 0 

对于-mtime-ctime ,文件的原始创建都有资格作为修改/状态更改。

命令查找选项:

如果您在很多天前需要特定的日期范围。

示例在/ data / docs目录中查找在2013年2月1日到2014年2月1日之间修改的文件:

 touch --date "2013-02-01" /tmp/start touch --date "2014-02-01" /tmp/end find /data/docs -type f -newer /tmp/start -not -newer /tmp/end 

您可以将列表保存到名为findlist.txt的文本文件中,如下所示:

 find /data/docs -type f -newer /tmp/start -not -newer /tmp/end > findlist.txt 

在日期: 2018-02-282018-03-28之间获取所有修改过的文件

 find . -type f -newermt 2018-02-28 -not -newermt 2018-03-28 

您也可以使用修改时间

 find -name app -type d -mtime -1 

(修改少于1 x 24小时前)或

 find -name app -type d -newermt yesterday