我正在尝试找出显示创建另一个文件之前和之后 30 分钟(例如)创建的所有文件的命令。到目前为止,我设法找到了比该文件更新的文件但我无法弄清楚如何在给定时间之前和之后寻找。
我使用过的命令:查找 -类型 f -较新的文件.txt -cmin -30
这工作正常,但只完成了我尝试做的一半。另外,我需要修改它以仅搜索 setuid 文件,我认为我可以通过在该命令中添加 -perm -4000 来完成。
有什么建议吗?
据我所知,没有办法找到文件创建时间。您可以按修改时间尝试(这将获得所有文件在 5 日和 8 日之间上次修改)
find . -type f -newermt 2012-10-05 ! -newermt 2012-10-08
(或访问时间将newermt
替换为newerat
)
newerXY
是将当前文件的时间戳与参考进行比较的标志(有关更多信息,请参阅 man 查找)。
根据man find
(在我的 debian 上)有 4 个标志(除了 t
直接解释为时间)
a The access time of the file reference
B The birth time of the file reference
c The inode status change time of reference
m The modification time of the file reference
您也可以尝试'B'
出生时间,但它对我不起作用,给我错误。我不知道为什么它包含在手册页中
与其他文件比较
find / -newer file
find / ! -newer file
您可以创建临时文件(一个修改时间在目标文件前 30 分钟,另一个修改时间在目标文件后 30 分钟的文件)
touch -d `stat -c %y test.txt` - 30 temp/before_temp
touch -d `stat -c %y test.txt` + 30 temp/after_temp
find / -newer temp/before_temp ! -newer temp/after_temp
touch -d
采用日期选项,因此,如果正确加减,这应该可以工作。