查找过去24小时内更改过的文件

时间:2013-04-18 14:38:47

标签: linux bash find

例如,MySQL服务器正在我的Ubuntu机器上运行。有些数据在过去24小时内发生了变化。

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

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

6 个答案:

答案 0 :(得分:409)

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

find /directory_path -mtime -1 -ls

应该是你喜欢的

-之前1很重要 - 它意味着一天或更短时间内发生了任何变化。 +之前的1代表至少在一天之前发生了任何变化,而在1之前没有任何内容意味着它在一天前被改变了,不多也不少。

答案 1 :(得分:33)

你可以用

做到这一点
find . -mtime 0

来自man find

  

自上次修改每个文件以来的时间除以24小时,任何余数都将被丢弃。这意味着          match -mtime 0,文件必须在过去不到24小时之前进行修改。

答案 2 :(得分:12)

另一种更人道的方式:

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

或:

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

或:

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

答案 3 :(得分:9)

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

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

这将列出过去24小时内修改过的文件和目录(-mtime 0)。它将以可排序和人类可读的格式(%T+)列出最后修改时间,然后是文件大小(%s),后跟完整文件名({{1 }}),每个由制表符(%p)分隔。

\t抛弃任何stderr输出,以便错误信息不会混淆水域; 2>/dev/null按最近修改的结果对结果进行排序;并且sort -r一次列出一页结果。

答案 4 :(得分:5)

此命令对我有用

find . -mtime -1 -print

答案 5 :(得分:4)

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