ChatGPT解决这个技术问题 Extra ChatGPT

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

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

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

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


A
ArtOfWarfare

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

find /directory_path -mtime -1 -ls

应该是你喜欢的

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


好的!最后2小时怎么样?
使用“-mmin -120”代替 mtime
为什么 - 在数值前?
-mtime 的参数被解释为文件期限中的整天数。 -mtime +n 表示严格大于,-mtime -n 表示严格小于。
致读者:在脚本中使用时不要忘记删除 -ls
M
Maxim Egorushkin

另一种更人性化的方式:

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

或者:

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

或者:

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

M
Michael

你可以这样做

find . -mtime 0

man find

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


S
Stephen G Tuggy

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


我想您也可以使用 | less 而不是 | more
moreless... ;)
j
jytou

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


B
BhandariS

这个命令对我有用

find . -mtime -1 -print

D
Deividson Damasio

找到文件...

您可以设置类型 f = 文件

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

👍