例如,MySQL 服务器正在我的 Ubuntu 机器上运行。在过去 24 小时内,某些数据已更改。
哪些 (Linux) 脚本可以找到过去 24 小时内已更改的文件?
请列出文件名、文件大小和修改时间。
要在特定特定目录及其子目录中查找过去 24 小时(最后一整天)内修改的所有文件:
find /directory_path -mtime -1 -ls
应该是你喜欢的
-
之前1
很重要 - 这意味着在一天或更短的时间内发生了任何变化。相反, a +
before1
将意味着至少一天前发生了任何变化,而在 the 之前没有任何内容1
则意味着它在一天前被严格更改,不多也不少。
另一种更人性化的方式:
find /<directory> -newermt "-24 hours" -ls
或者:
find /<directory> -newermt "1 day ago" -ls
或者:
find /<directory> -newermt "yesterday" -ls
你可以这样做
find . -mtime 0
来自man find
:
[The] 自上次修改每个文件以来的时间除以 24 小时,其余的将被丢弃。这意味着要匹配 -mtime 0,文件必须在过去不到 24 小时前进行过修改。
在 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
一次列出一页结果。
对于将来登陆这里的其他人(包括我自己),添加一个 -name 选项来查找特定的文件类型,例如:find /var -name "*.php" -mtime -1 -ls
这个命令对我有用
find . -mtime -1 -print