linux - 文件系统加速 - 'find' 命令

标签 linux find metadata fuse dir

<分区>

我想加速如下查询: find root_dir -atime -5 - 查找不到五天前访问过的文件。

我考虑将文件系统层次结构和文件元数据存储在数据库中。 您知道任何可以提供帮助的解决方案吗? 也许存在可以执行此操作的 fuse 文件系统?

最佳答案

这样的查找命令会导致遍历的目录数据和 inode 位于文件系统缓存中,这就是为什么当您第二次运行相同的命令时通常要快得多的原因第二次。这同样适用于遍历文件系统的其他命令,例如 du

请注意,您的数据库的建立至少也需要花费 find 的时间。更不用说同步运行以反射(reflect)数据库中的文件系统更改。完全重建数据库很可能是执行此操作的最快方法。

因此,我要做的是通过文件系统中您感兴趣的部分运行 find(可能使用定期的 cron 作业)。这样,在某种意义上,您可以在内存中建立一个“数据库”,随后的 finddu 之类的东西会运行得更快。

关于linux - 文件系统加速 - 'find' 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20440430/

相关文章:

c++ - inotify 的 IN_DELETE 事件发生时 select 方法失败

c++ - 在 Linux 下从 C++ 中的串行接口(interface)读取字节的问题

c++ - OOP 迭代器和查找方法无法正常工作

ios - 使用 URL 从 mp3 文件中获取元数据(快速)

asp.net-mvc - 如何使用 DataAnnotations 进行 ASP.NET MVC 模型验证,其中 ViewModel 包含来自外部 Web 服务的对象?

c++ - 从子文件夹中读取多个图像..C++/opencv

linux - 有哪些选项可用于获取 cron 的结果以及如何设置它们?

Linux shell 编程。实现搜索、查找和替换技术

Javascript/jQuery 查找和替换

powershell - 授予 MSysObjects 的读取权限