【发布时间】:2015-08-26 11:42:39
【问题描述】:
我正在编写一个 shell 脚本,它检索一个目录中的所有文件,这些文件是 x 天前最后一次修改的,从当天 00:00 开始。
我为此使用的当前查找命令如下所示,但这将从脚本运行时开始检查。例如。如果脚本在 12:00 运行并检索到所有在 7 天或更早之前修改的文件,则所有在 7 天前12:00之后修改的文件将不包含在内在查找结果中。
find $SEARCH_DIR -mtime +$DAYS_AGO
我知道在 Bash 中您可以使用 -daystart 和 find 来克服这个问题,但是脚本需要在使用 -daystart 的 IBM z/OS 机器上运行strong>/bin/sh shell,不支持此选项。
我见过其他情况,人们使用 touch 创建文件并使用 date -d 或 date 将时间戳更改为所需日期 --日期 如下所示,但这些选项再次对我不开放这个shell。
date -d '7 days ago'
date --date '3 months 1 day ago'
此 PDF 显示了我们的 IBM z/OS 版本支持的 UNIX 命令的完整列表:http://publibfp.dhe.ibm.com/epubs/pdf/bpxza5c0.pdf
有人对如何克服这个问题有任何想法吗?任何建议将不胜感激。
提前致谢!
【问题讨论】:
-
find(或者,就此而言,date)的功能与您使用的 shell 无关。也许您可以在 z/OS 机器上安装 GNU findutils。 (您也可以安装 Bash,但如上所述,它对解决这个问题没有帮助。) -
感谢@tripleee,但我不认为安装 GNU findutils 对我来说是一个选择。