查找过去 24 小时内更改过的文件
- 2024-11-05 08:38:00
- admin 原创
- 33
问题描述:
例如,我的 Ubuntu 机器上运行着一个 MySQL 服务器。在过去 24 小时内,一些数据发生了变化。
哪些(Linux)脚本可以找到过去 24 小时内更改过的文件?
请列出文件名、文件大小和修改时间。
解决方案 1:
查找特定目录及其子目录中过去 24 小时(过去一整天)内修改的所有文件:
find /directory_path -mtime -1 -ls
应该符合你的喜好
之前很重要 - 它表示任何在一天或更短时间内发生过的变化。-
之前表示任何至少在一天前发生过的变化,而之前没有任何东西表示任何变化是在一天前发生的,不多也不少。1
`+1
1`
解决方案 2:
另一种更人性化的方法是使用-newermt
理解人类可读时间单位的选项(参见man find
并搜索-newerXY
)。
与选项不同的是-mtime
,它要求用户阅读find
文档以弄清楚所需的时间单位-mtime
,然后让用户将其时间单位转换为这些单位,这容易出错并且明显不方便用户使用。-mtime
在 20 世纪 80 年代几乎无法接受,但在 21 世纪却-mtime
具有石器时代工具的便利性和安全性。
-newermt
以不同的人性化单位表示的相同持续时间的选项的示例用法:
find <directory> -newermt "-24 hours" -ls
find <directory> -newermt "1 day ago" -ls
find <directory> -newermt "yesterday" -ls
解决方案 3:
你可以这样做
find . -mtime 0
从man find
:
将每个文件自上次修改以来的时间除以 24 小时,并丢弃任何余数。这意味着要匹配 -mtime 0,文件必须在 24 小时以内进行过修改。
解决方案 4:
在 GNU 兼容系统(即 Linux)上:
find . -mtime 0 -printf '%T+ %s %p
' 2>/dev/null | sort -r | more
这将列出过去 24 小时内修改过的文件和目录 ( -mtime 0
)。它将以可排序且人性化格式 ( ) 列出它们,并列出最后修改时间%T+
,后跟文件大小 ( %s
),后跟完整文件名 ( %p
),每个部分都用制表符分隔 (
)。
2>/dev/null
丢弃任何 stderr 输出,以便错误消息不会混淆;sort -r
按最近修改的顺序对结果进行排序;并且| more
一次列出一页结果。
解决方案 5:
对于将来到达这里的其他人(包括我自己),添加一个 -name 选项来查找特定的文件类型,例如:find /var -name "*.php" -mtime -1 -ls
解决方案 6:
这个命令对我有用
find . -mtime -1 -print
解决方案 7:
查找文件...
您可以设置类型 f = file
find /directory_path -type f -mtime -1 -exec ls -lh {} ;
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件