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

标签 bash list file unix timestamp

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

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

  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/

相关文章:

algorithm - 在列表中查找元素集,元素只能使用一次 - 如何处理算法

android - 以编程方式删除的文件仍然显示在 Windows 资源管理器中

java - 更改 zip 文件内的文件内容

algorithm - shell脚本排序列表

linux - 如何在后台运行命令并在完成后通过电子邮件通知我

python - 如何知道列表的元素数量是偶数还是奇数

c++ - List<MyClass*> & 数组问题

python - 在Python中将列表写入CSV文件

python - 在 Rstudio 中运行 python/bash 代码

linux - 如何在变量中存储 echo |削减结果?