需要查找15到5分钟前修改的文件

问题描述 投票:0回答:3

我试图查找给定文件夹中在特定时间范围内(例如 5 到 15 分钟前)修改的所有文件。

目前我可以使用 find -cmin 找到 15 分钟前修改的任何内容

#!/bin/bash

minutes="15"

FILETYPES=`find . *PATTERN*.txt* -maxdepth 0 -type f -cmin -$minutes`

我如何给它一个时间范围?

bash scripting find
3个回答
11
投票

试试这个:

find . -name '*pattern.txt' -maxdepth 1 -type f \( -mmin -15 -a -mmin +5 \)

注释

  • 对于
    -a
    ,括号不是必需的,但对于
    -o
  • ,括号是必需的
  • 始终在模式周围使用单引号,以防止 shell 扩展通配符
  • 要给出模式,请使用
    -name
    -iname
  • 对于日期/小时,
    -mmin
    表示分钟,
    -mtime
    表示天。

2
投票

使用

find
,您可以添加其他条件来创建范围。每个条件都隐含为“和”,除非使用
-o
。您还需要
-mmin
而不是
-cmin
来修改时间(但它们通常是相同的)。

find . '*PATTERN*.txt*' -maxdepth 0 -type f -mmin -15 -mmin +5

0
投票

我尝试了相同的命令,但在上午 12 点左右创建了新的日志文件。前几天的日志文件也因此而来。有谁知道我如何避免旧日文件出现在结果中?

© www.soinside.com 2019 - 2024. All rights reserved.