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

例如,MySQL服务器正在我的Ubuntu机器上运行。部分数据在过去24小时内发生了更改。

什么(Linux)脚本可以找到在过去24小时内被更改的文件?

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

492189 次浏览

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

find /directory_path -mtime -1 -ls

应该符合你的喜好

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

你可以用

find . -mtime 0

man find:

[]距离每个文件最后一次修改的时间除以24小时,剩余的时间将被丢弃。这意味着 匹配-mtime 0,文件必须在过去24小时内有过修改

这个命令对我很管用

find . -mtime -1 -print

在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 /<directory> -newermt "-24 hours" -ls

或者:

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

或者:

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

找到文件…

您可以设置类型f = file

find /directory_path -type f -mtime -1 -exec ls -lh {} \;

👍