gpt4 book ai didi

linux - 如何找到目录中最新修改文件的时间戳(递归)?

转载 作者:IT王子 更新时间:2023-10-29 01:13:53 25 4
gpt4 key购买 nike

我正在处理一个需要在对指定目录中的任何文件进行任何更改时递归地重新启动的进程。

我想避免使用任何沉重的东西,比如 inotify .我不需要知道哪些文件已更新,而只需要知道文件是否已更新。此外,我不需要在每次更改时都收到通知,而只需要知道是否在特定时间间隔发生了任何更改,该时间间隔由流程动态确定。

必须有一种方法可以使用相当简单的 bash 命令来完成此操作。我不介意必须多次执行命令;性能不是我对这个用例的主要关注点。但是,命令越快越好。

我唯一需要的输出是上次更改的时间戳,因此我可以将它与存储在内存中的时间戳进行比较。

我也乐于接受更好的解决方案。

最佳答案

我实际上从 another closely related question 找到了一个很好的答案。

我只是稍微修改了命令以使其适应我的需要:

找到 . -type f -printf '%T@\n' |排序-n |尾部-1

  1. %T@ 将修改时间作为 unix 时间戳返回,这正是我所需要的。
  2. sort -n 按数字对时间戳进行排序。
  3. tail -1 只保留最后一个/最高的时间戳。

它运行得相当快;在我的整个主目录上大约 400 毫秒,在预期目录上大约 30 毫秒(使用 time [command] 测量)。

关于linux - 如何找到目录中最新修改文件的时间戳(递归)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30959872/

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