几分钟前如何查找已访问/创建的文件


78

我总是忘记我在一分钟前编辑的文件,所以我输入了find . -cmin 1或其他值,但它恰好在1几分钟内起作用。我不得不尝试find . -ctime 2 /*or 3,4...*/

然后,我发现另一种更好的方法:

touch -t 12251134 empty /*similar format which 5 or 10 minutes ago */
find . -newer empty

我可以date -d'-5minutes' +%m%d%H%M为我计算时间。我想知道是否有一种简单的方法来查找在1、2或3 ...分钟前访问过的文件。


1
为什么不使用“历史”?因此,使用箭头键,您可以查找以前使用的命令。
Icarus3

1
我用ls -Ahl -crt | tail -5。很多时候,我为此做了一个别名。mc修改过的分类会更好。
potrzebie 2012年

Answers:


129

分别简单地指定您希望时间是大于,小于还是等于您想要的时间:

find . -cmin +<time>
find . -cmin -<time>
find . -cmin  <time>

以您的情况为例,最新版本的文件最长为5分钟,其表示为:

find . -cmin -5

2
我想知道为什么他们没有在手册页中包含此有用的用法
yuan

10
是的,它在那里,就在查找手册页中,只需查找:可以将数字参数指定为:+ n,大于n;-n,少于n;n,恰好是n。他们的孩子写了这些Unix程序,他们创造了奇迹(:
Rubens

1
嗯,kiiinda。这一点你如何可以使用+,并-在层次结构,至少在我的系统,一个级别:在“初选”标题下。我很惊讶它只是完全匹配,所以我检查了另一个。最终,好的ol'SO获救了:)
ari gold

1
请注意,如果您想使用mtime,还可以使用mmin选项
JohanBoulé19年

17

如果您有GNU查找,也可以说

find . -newermt '1 minute ago'

这些t选项使参考“文件”newer成为您可以传递给GNU的那种参考日期字符串date -d,它可以理解复杂的日期规范,例如上面给出的。


对于这个简单的情况下-mmin将工作,但你也可以说-newermt 'yesterday'或者-newermt '+ 2 weeks'甚至-newermt '2PM last Sunday'。可以手动计算这些事情,但是找find出来要容易得多。
sorpigal

12

要查找在1、2或3分钟前访问过的文件,请使用 -3

find . -cmin -3

4

如果您知道文件在当前目录中,则可以使用:

ls -lt | head

这将按顺序列出您最近修改的文件和目录。实际上,我使用它的频率很高,因此我将其别名为“ lh”。


如果文件超过10个,但您不知道数量怎么办。然后头不起作用
Stunner

1
head仍然可以达到该目的,默认值为10行。您可以指定任意数量。前五行?head -5。前二十行?head -20。与tail
-Carles Alcolea
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.