我正在尝试找出显示在创建另一个文件之前和之后30分钟(作为示例)创建的所有文件的命令。到目前为止,我设法找到比该文件更新的文件 但我无法弄清楚在给定时间之前和之后如何寻找。
我用过的命令: find -type f -newer file.txt -cmin -30
这样可以正常工作,但只能完成我想做的一半。 此外,我需要修改它来搜索setuid文件,我认为我可以通过在该命令中添加-perm -4000来做。
有什么建议吗?
答案 0 :(得分:3)
据我所知,无法找到文件创建时间。 您可以尝试修改时间(这将使所有文件在5日和8日之间进行最后修改)
find . -type f -newermt 2012-10-05 ! -newermt 2012-10-08
(或访问时间将newermt
替换为newerat
)
newerXY
是用于比较当前文件的时间戳与引用的标志(有关详细信息,请参阅man find)。
根据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
需要一个日期选项,所以如果正确添加和减去,这应该可行。