【问题标题】:In unix, how to extract last 60 days files from yesterday在 unix 中,如何从昨天提取过去 60 天的文件
【发布时间】:2016-09-13 04:28:59
【问题描述】:

我能够从当前日期提取最近 60 天的文件。但我想要昨天的最后 60 天文件。 下面是命令,我用来获取最近 60 天的文件

find . -name $val\* -mtime -60 -print

我可以将输出通过管道传输到另一个查找,可能如下所示

find . -name $val\* -mtime -60|find . -name $val\* -mtime 1 -print

但这会产生在过去 60 天文件列表中恰好在一天前修改的文件。

请帮助我如何实现它。

【问题讨论】:

  • 看来您已经有了正确答案。但是很难确定,因为您的问题不清楚。您能否编辑您的帖子以给出一个清晰的示例,包括文件名和 mtime 值?

标签: shell unix ksh


【解决方案1】:

您可以为单个 find 命令提供多个谓词来过滤 返回的文件列表。在这种情况下,将 -mtime +1 与您的 第一个命令将返回不到 60 天前和超过一天前(逻辑 AND 是隐含的)修改过的所有文件:

find . -name $val\* -mtime -60 -mtime +1 -print 

【讨论】:

  • 感谢它的工作。我在某个网站上看到 -mtime 1 选项检索恰好在一天前修改的文件。所以我就去了。现在它工作正常......
  • 不客气@Dhivya 因为这个答案对你有用,你应该点击左边的复选标记accept it。这将问题标记为已回答,并且(带有赞成票)是在 Stack Exchange 网站上表达感谢的方式。欢迎来到 Stack Exchange 网络!
【解决方案2】:

这个命令有用吗?
find . -name $val\* \( -mtime -61 -and -not -mtime -1 \) -print

它将列出所有过去 61 天的文件,但不包括在过去 24 小时内修改过的文件。

【讨论】:

  • 我绑定了@Anthony 的命令,它起作用了。那 -and 不被 shell 识别。总之谢谢
  • @Dhivya 没有说他/她使用的是哪种类型的 Unix。 -and 谓词是 GNU 扩展,因此不适用于 POSIX-compatible versions of find。不需要它,因为 find 表达式隐含地与逻辑 AND 组合。出于同样的原因,括号不是必需的。除此之外,这是一个很好的答案,所以我会赞成。欢迎来到 Stack Exchange 网络!
  • 我是 unix 新手。所以对 GNU 和 POSIX 了解不多。我正在通过这个网站学习......你的回答者真的很有帮助。再次感谢 Anthony 和@Nguyen....
猜你喜欢
  • 2021-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多