递归查找比给定时间更新的所有文件

新手上路,请多包涵

给定一个 time_t:

 ⚡ date -ur 1312603983
Sat  6 Aug 2011 04:13:03 UTC

我正在寻找一个列出所有更新文件的 bash 单行器。比较应考虑时区。

就像是

find . --newer 1312603983

但是使用 time_t 而不是文件。

原文由 whatupdave 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 428
2 个回答

这有点迂回,因为 touch 不采用原始的 time_t 值,但它应该在脚本中非常安全地完成这项工作。 (MacOS X 中存在 date-r 选项;我没有仔细检查过 GNU。)可以通过直接在 touch 命令行。

 time=$(date -r 1312603983 '+%Y%m%d%H%M.%S')
marker=/tmp/marker.$$
trap "rm -f $marker; exit 1" 0 1 2 3 13 15
touch -t $time $marker
find . -type f -newer $marker
rm -f $marker
trap 0

原文由 Jonathan Leffler 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以找到在最后一天创建/修改的每个文件,使用以下示例:

 find /directory -newermt $(date +%Y-%m-%d -d '1 day ago') -type f -print

要查找上周的所有内容,请使用“1 周前”或“7 天前”任何您想要的内容

原文由 vadonka 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题