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

Sus*_*hma 2 bash shell

我有一个要求,我想向没有访问过文件的用户发送通知30 min.使用shell脚本.是否可以找到30 min使用find 未访问的文件.我查了一下.

find /opt/SP/tibmft/scripts/ -mtime 0
Run Code Online (Sandbox Code Playgroud)

这将获取在过去24小时内修改过的文件.

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

Rob*_*ale 5

尝试使用

find PATH -cmin -30 -and -amin +30
Run Code Online (Sandbox Code Playgroud)


Syl*_*oux 5

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

根据man find:

数字参数可以指定为

  • +n 大于n,
  • -n 少于n,
  • n 恰好是n.

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

find PATH -not -amin +30
Run Code Online (Sandbox Code Playgroud)

要么

find PATH -amin -31
Run Code Online (Sandbox Code Playgroud)

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

这是一个尝试:

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

...不幸的是,它在我的计算机上无法使用ext4文件系统,因为,引用Barmar上面的评论:"大多数Unix文件系统不记录文件创建时间.他们只是有修改,访问和inode改变时间."

一些随意的想法:

  • 根据您的一条评论,这可能是一项定期任务.那么有人可能会调查使用cron作业来定期记录文件列表?
  • 如果您的文件系统有快照,那么您也可以使用它.也许.