在目录中查找最新文件而不读取其中的所有内容

Jef*_*ose 4 c python unix

我正试图找出一个巨大的文件系统中的最新文件.一种方法是遍历所有目录 - 一次一个,读取其内容,选择最新文件等.

明显的缺点是我必须获取特定目录中的所有文件.我想知道是否在Python [1]中有一个"魔术"调用,Unix支持它只获取目录中的最新文件.

[1].我的应用程序是在Python中,但如果stdlib中不存在现成的解决方案,请使用系统调用提供C(语言)备选方案.我愿意写一个C-extension并使其成功.

谢谢

更新:我想我应该解释为什么inotify类型解决方案不适合我.我只是在寻找使用Python/C的系统调用,它可以给我最新的文件.是的,人们可以通过inotify(或类似的总体设置)来监视FS的变化但是给定一个随机目录如何找到最新的文件是问题的本质.

Spa*_*ost 7

您是否考虑过使用可以观看目录和子目录的pyinotify
这可能需要您的代码是线程化的,比如一个观察者线程,它记录了要轮询的主线程的最新更改.

或者,您可以使用popen并获得'ls -t |的结果 头-1'


the*_*olf 5

我不相信通常'Unix'或Posix系统支持平台无关的文件系统更改通知.

也就是说,有很多unixy系统可以:

其他人建议尝试解释ls.不要那样做.如果你觉得有必要使用Unix工具,那么大多数Unix/Linux/Posix版本也都有stat实用程序.该统计工具具有可配置输出,你可以设置要解析的字段.它是GNU核心实用程序的一部分.