查找30分钟前的文件


12

我如何找到30分钟前的文件/bin/ksh


4
您是说“它的内容在30分钟前更改了”还是“直到30分钟前才创建它才存在”?另外,您使用什么操作系统?不同的操作系统附带不同版本的find
Mark Plotnick 2014年

@ Mark Plotnick我想查找30分钟前的文件
Aravind

我认为他/她的意思是30分钟前创建的。好像某人是X岁,他/她是X年前出生的。
erik

Answers:


15

在Linux上,没有文件创建时间的跟踪。您只能访问:

  • 内容的最后修改时间(创建当然算作修改)mtime
  • 上次访问时间atime
  • 元数据的最后修改时间,ctime

如果您想根据这些时间通过测试查找文件,findman find)可以为您提供帮助。

您可以通过这种方式使用它在当前目录及其子目录中查找恰好在30分钟之前访问的文件:

find -amin 30

通常,您需要使用一个间隔,因为很难给出确切的分钟数:

find -amin +25 -amin -35

这将查找访问时间超过25分钟但少于35分钟的文件。

如果您只对修改时间感兴趣,而对访问(即读取)时间不感兴趣,请替换-amin-mmin


你不想时间。atime是访问时间。
ctrl-alt-delor 2014年

@richard OP并没有明确说明他的意思……无论如何我mtime也回答了这个问题
lgeorget 2014年

1
@ lgeorget,当我使用-mtime 30它显示30天的文件。
Aravind 2014年

@ user2910201 Ups使我愚蠢。Xtime选项是几天,Xmin选项是分钟。我不好,我编辑答案
lgeorget

2
@ user2910201,但请注意,您可以使用Xtime任何合理的时间单位,例如30m30分钟或5d5天
lgeorget 2014年

3

您可以使用以下mtime方法:

find . -mmin 30    #exactly 30 minutes old

这会告诉你这是文件createdmodified30分钟回
g4ur4v

@ g4ur4v当我使用-mmin它时显示-mmin不是一个有效的选项
Aravind

试试看:find /path -mtime +30m
ryekayo 2014年

不知道为什么无法识别它-mmin,我已经使用该命令查询了许多示例
。– ryekayo 2014年

3

带出 GNU/BSD find

TZ=ZZZ0 touch -t "$(TZ=ZZZ0:30 date +%Y%m%d%H%M.%S)" /reference/file

接着 find . -newer /reference/file

StéphaneChazelas提供的解决方案

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.