gpt4 book ai didi

bash - 列出特定月份修改的文件

转载 作者:行者123 更新时间:2023-11-29 08:49:06 26 4
gpt4 key购买 nike

我很难列出在特定月份(例如,二月)修改的文件。

以下是几次不成功的尝试:

  1. 我尝试创建临时文件并将它们的时间戳设置为下个月的第一次和目标月份的第一次,并在 find 中使用 -newer ,像这样:
    find -newer "$from" ! -newer "$to"

这列出了在时间间隔 ($from, $to) 内修改的文件,但我想要时间间隔 [$from , $to) (否则,在下个月的第一秒创建的文件会有误报)。列出 2 月修改的文件是另一个问题,因为这需要将其中一个时间戳设置为 2 月仍然最大的时间戳,但 2 月的天数根据是否是闰年而变化,这需要额外检查.

  1. 如果我使用 ls,我在解析时会遇到很多复杂情况,因为用户名或组可能包含空格。

是否有一种简单且相对便携的方法来执行此操作(因此它适用于任何月份,无论文件名等如何)?

最佳答案

日期 allows您可以轻松地为这样的目的生成时间戳:

date -d "01-Mar-2011 -1 sec" # last second of Feb-2011

幸运的是,find 中可以使用相同的语法:

month="Mar-2010"
find . -newermt "01-$month -1 sec" -and -not -newermt "01-$month +1 month -1 sec"

将查找在 2010 年 3 月修改的所有文件。

请参阅 find's man page 中的选项 -newerXY .

关于bash - 列出特定月份修改的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5289420/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com