例如,MySQL服务器正在我的Ubuntu机器上运行。有些数据在过去24小时内发生了变化。
哪些(Linux)脚本可以找到过去24小时内更改过的文件?
请列出文件名,文件大小和修改时间。
答案 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