查找最近30分钟未访问/修改的文件?

时间:2014-07-25 10:25:21

标签: bash shell

我有一项要求,我想将通知发送给未访问30 min中文件的用户。使用shell脚本。是否可以使用find找到30 min中未访问的文件。我查过了。

find /opt/SP/tibmft/scripts/ -mtime 0

将获取过去24小时内修改过的文件。

我的要求是获取最近30分钟内创建但未被用户访问的文件?请提出解决方案,如何实现这一目标?

3 个答案:

答案 0 :(得分:5)

尝试使用

find PATH -cmin -30 -and -amin +30

答案 1 :(得分:5)

  

是否可以使用find找到30分钟内未访问的文件。

根据man find

  

数字参数可以指定为

     
      
  • +n大于n,
  •   
  • -n小于n,
  •   
  • n完全是n。
  •   

请注意,这是更大更少不大于/小于或等于。因此,您必须小心谨慎,以免因此而导致1分钟错误:

find PATH -not -amin +30

find PATH -amin -31

  

我的要求是获取最近30分钟内创建但未被用户访问的文件?

这是一次尝试:

find PATH -amin -31 -not -newerBt "-30 minutes"
#                        ^^^^^^^^
#                        (B)irth date newer (t)han ...

...遗憾的是,它在我的计算机上无法使用 ext4 文件系统,因为,引用Barmar上面的评论:" Most Unix文件系统不记录文件创建时间。他们只需要修改,访问和inode更改时间。"

一些随意的想法:

  • 根据您的一条评论,这可能是一项定期任务。那么有人可能会调查使用cron job来定期记录文件列表吗?
  • 如果您的文件系统有snapshots,那么您也可以使用{{3}}。也许。

答案 2 :(得分:1)

尝试以下方法:

find $PATH -type f -cmin -30 amin +30