例如,MySQL服务器正在我的Ubuntu机器上运行。部分数据在过去24小时内发生了更改。
什么(Linux)脚本可以找到在过去24小时内被更改的文件?
请列出文件名称、文件大小和修改时间。
查找某一特定目录及其子目录中在过去24小时内(最近一整天)被修改的所有文件:
find /directory_path -mtime -1 -ls
应该符合你的喜好
1
-
+
你可以用
find . -mtime 0
从man find:
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)。
-mtime 0
%T+
%s
%p
\t
2>/dev/null丢弃任何stderr输出,这样错误消息就不会搅浑水;sort -r先按最近修改的结果排序;| more每次只列出一页结果。
2>/dev/null
sort -r
| more
对于将来登陆这里的其他人(包括我自己),添加一个name选项来查找特定的文件类型,例如:find /var -name "*.php" -mtime -1 -ls
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 {} \;
👍