我试图找出在创建另一个文件之前和之后显示 30 分钟(例如)创建的所有文件的命令。到目前为止,我设法找到了比该文件更新的文件,但我无法弄清楚如何在给定时间之前和之后查找。
我用过的一个命令:find -type f -newer file.txt -cmin -30
这工作正常,但只做了我想做的一半。另外,我需要修改它以仅搜索 setuid 文件,我认为可以通过在该命令中添加 -perm -4000 来做到这一点。
有什么建议么?
我试图找出在创建另一个文件之前和之后显示 30 分钟(例如)创建的所有文件的命令。到目前为止,我设法找到了比该文件更新的文件,但我无法弄清楚如何在给定时间之前和之后查找。
我用过的一个命令:find -type f -newer file.txt -cmin -30
这工作正常,但只做了我想做的一半。另外,我需要修改它以仅搜索 setuid 文件,我认为可以通过在该命令中添加 -perm -4000 来做到这一点。
有什么建议么?
据我所知,没有办法找到文件创建时间。您可以按修改时间尝试(这将获得所有文件的最后修改时间在 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
需要一个日期选项,所以如果你正确地添加和减去,这应该可以工作。