linux获取日期范围,linux – 在日期范围内创建的所有文件中的Grep

这与Banthar的解决方案有点不同,但它将适用于不支持-newermt的find的版本,并显示如何使用xargs命令,这是一个非常有用的工具.

您可以使用find命令查找某个年龄的文件.这将在5天和10天之前找到所有修改的文件:

find /directory -type f -mtime -10 -mtime +5

然后搜索这些文件的字符串:

find /directory -type f -mtime -10 -mtime +5 -print0 |

xargs -0 grep -l expression

您也可以使用-exec开关,但是我发现xargs更易于阅读(并且它通常也会表现得更好,但在这种情况下可能不会更好).

(请注意,-0标志是让这个命令对具有嵌入空格的文件进行操作,例如这是我的文件名.)

评论中的问题更新

当您提供多个表达式来查找时,它们将被AND组合在一起.例如,如果你要求:

find . -name foo -size +10k

… find只会返回(a)命名为foo和(b)大于10 kbytes的文件.同样,如果您指定:

find . -mtime -10 -mtime +5

…发现只会返回(a)比10天前更新的文件,(b)超过5天前的文件.

例如,在我的系统上,它目前是:

$date

Fri Aug 19 12:55:21 EDT 2016

我有以下文件:

$ls -l

total 0

-rw-rw-r--. 1 lars lars 0 Aug 15 00:00 file1

-rw-rw-r--. 1 lars lars 0 Aug 10 00:00 file2

-rw-rw-r--. 1 lars lars 0 Aug 5 00:00 file3

如果我要求“文件修改超过5天前(-mtime 5)我得到:

$find . -mtime +5

./file3

./file2

但是,如果我要求“文件修改超过5天前但不到10天前”(-mtime 5 -mtime -10),我得到:

$find . -mtime +5 -mtime -10

./file2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值