如果我想按名称查找文件,我会执行以下操作:
find -name app
如果我想按类型查找文件,我会执行以下操作:
find -name app -type d
但是,由于 app 是一个很通用的名称,因此会出现很多结果。我想查找今天创建的名为 app 的目录。是否有标志或命令可以实现此目的?
答案1
/
在整个文件系统中搜索
- 目录 (
-type d
), - 称为
app
(-name app
), - 修改时间在一天之内(即 24 小时前)(
-mtime 0
),
...使用:
find / -name app -type d -mtime 0
来源: man find
。
请特别参阅标志的解释-mtime
和“ find $HOME -mtime 0
”示例:
[匹配-mtime 0,文件必须在 24 小时以内发生过修改。
(因此,文件修改后的天数是四舍五入到最接近的整数以便匹配-mtime
。)
为了文件时间戳的目的,创建被视为修改的一种形式,因此即使文件内容在创建后没有更改,此方法也会起作用。它还会匹配最近一天修改时间戳较早创建的文件夹,但您可能没有很多这样的文件夹,其确切名称是app
。
当文件创建通常不存储在文件系统中。但是元数据上次更改的时间(例如,名称/位置、所有权、权限)被存储。如果您希望通过此方式了解文件内容的修改时间,请使用-ctime
代替-mtime
:
find / -name app -type d -ctime 0
对于-mtime
和而言-ctime
,文件的原始创建均视为修改/状态改变。
答案2
获取日期之间所有修改过的文件:2020-02-28
至2020-03-28
find . -type f -newermt 2020-02-28 -not -newermt 2020-03-28
答案3
命令查找选项:
如果您需要多天前的特定日期范围。
示例查找 /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
答案4
您可以使用修改时间, 任何一个
find -name app -type d -mtime -1
(24 小时前修改少于 1 次)或
find -name app -type d -newermt yesterday