查找最近24小时内已更改的文件


Answers:


476

要查找特定特定目录及其子目录中最近24小时(最后一整天)内修改的所有文件,请执行以下操作:

find /directory_path -mtime -1 -ls

应该是你喜欢的

-之前1是非常重要的-这意味着任何改变一天或更短前。一个+1反而会意味着什么改变至少一天前,当一无所有之前1就意味着它被改变付出一天前,没有更多,不会少。


17
真好!最近2小时怎么样?
JackWM

114
使用“ -mmin -120”代替mtime
Xavjer 2013年

1
为什么-前面的数值?
EsseTi '16

5
-mtime的参数解释为文件使用期限内的整天数。-mtime + n表示严格大于,-mtime -n表示严格小于。
Xavjer '16

2
致读者:-ls在脚本中使用时,别忘了删除
重载了

41

你可以这样做

find . -mtime 0

来自man find

[自上次修改每个文件以来的时间]除以24小时,其余部分将被丢弃。这意味着要匹配-mtime 0,文件必须在不到24小时之前进行过修改。


25

另一种更人性化的方式:

find /<directory> -newermt "-24 hours" -ls

要么:

find /<directory> -newermt "1 day ago" -ls

要么:

find /<directory> -newermt "yesterday" -ls

11

在GNU兼容系统(即Linux)上:

find . -mtime 0 -printf '%T+\t%s\t%p\n' 2>/dev/null | sort -r | more

这将列出最近24小时内已修改的文件和目录(-mtime 0)。它将以可排序和易于阅读的格式列出它们的最后修改时间(%T+),然后是文件大小(%s),然后是完整文件名(%p),每个文件名之间用制表符(\t)分隔。

2>/dev/null丢弃任何stderr输出,以使错误消息不会使混乱。sort -r将结果按最近修改的顺序排序;并一次| more列出一页结果。


2
我想,您也可以使用| less代替| more
Stephen G Tuggy

7

对于将来再来这里的其他人(包括我自己),请添加-name选项以查找特定的文件类型,例如: find /var -name "*.php" -mtime -1 -ls


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.