如何找到在 Unix 中最后一个小时创建的文件

如何找到在 Unix 中最后一个小时创建的文件

280766 次浏览

检查一下 这个链接,然后帮助你自己。

基本原则是

#create a temp. file
echo "hi " >  t.tmp
# set the file time to 2 hours ago
touch -t 200405121120  t.tmp
# then check for files
find /admin//dump -type f  -newer t.tmp -print -exec ls -lt {} \; | pg

UNIX 文件系统(通常)不存储创建时间。相反,只有访问时间、(数据)修改时间和(inode)更改时间。

也就是说,find-atime -mtime -ctime谓词:

$ man 1 find
...
-ctime  n
The primary shall evaluate as true if the time of last change of
file status information subtracted from the initialization time,
divided by 86400 (with any remainder discarded), is n.
...

因此,find -ctime 0会在不到一个小时之前发现 inode 已经更改的所有内容(例如,包括文件创建,但也计算链接数和权限以及文件大小的更改)。

如果要搜索的目录是 srch_dir,则

$ find srch_dir -cmin -60 # change time

或者

$ find srch_dir -mmin -60 # modification time

或者

$ find srch_dir -amin -60 # access time

显示在过去一小时内创建、修改或访问的文件。

更正: ctime 是用于更改节点时间(不确定,请更正)

sudo find / -Bmin 60

来自 man页面:

- Bmin n

如果文件的 inode 创建时间与 find开始的时间,四舍五入到下一个完整的分钟,是 n 几分钟。

显然,您可能希望以不同的方式设置,但是这个主服务器似乎是搜索在最后 N分钟内创建的任何文件的最佳解决方案。

find ./ -cTime -1 -type f

或者

find ./ -cmin -60 -type f

查看此 链接了解更多细节。

要在工作目录中查找过去一个小时内创建的文件,可以使用-amin

发现-amin-60型 F

这将找到在过去1小时内创建的文件。