如何按日期查找最近的文件?
如果我想按名称查找文件,请执行以下操作:
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-28
到2018-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