322

例如,MySQL 服务器正在我的 Ubuntu 机器上运行。在过去 24 小时内,某些数据已更改。

哪些 (Linux) 脚本可以找到过去 24 小时内已更改的文件?

请列出文件名、文件大小和修改时间。

4

6 回答 6

568

要在特定特定目录及其子目录中查找过去 24 小时(最后一整天)内修改的所有文件:

find /directory_path -mtime -1 -ls

应该是你喜欢的

-之前1很重要 - 这意味着在一天或更短的时间内发生了任何变化。相反, a +before1将意味着至少一天前发生了任何变化,而在 the 之前没有任何内容1则意味着它在一天前被严格更改,不多也不少。

于 2013-04-18T14:42:08.760 回答
56

另一种更人性化的方式:

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

或者:

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

或者:

find /<directory> -newermt "yesterday" -ls
于 2016-12-08T18:30:19.550 回答
48

你可以这样做

find . -mtime 0

来自man find

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

于 2013-04-18T14:48:43.277 回答
12

在 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一次列出一页结果。

于 2016-07-24T00:01:26.680 回答
9

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

于 2016-10-19T18:32:14.633 回答
5

这个命令对我有用

find . -mtime -1 -print
于 2015-07-09T11:32:16.950 回答