“find”和“locate”最适合在什么情况下使用?

“find”和“locate”最适合在什么情况下使用?

我知道locate必须生成数据库并且速度要快得多,而不find需要生成数据库并且速度不那么快。那么在什么情况下findlocate更有效/更有感情/给出更好的最终结果呢?

答案1

正如您所说,locate 有一个数据库,因此速度要快得多,而 find 必须遍历文件系统。但是locate的数据库只包含文件名(及其路径),而find可以根据其他元数据(例如mtime或size)选择文件。所以这是我的简历的多才多艺。此外,数据库必须批量更新,通常是每晚更新,因此最近创建的修改文件不会正确显示。此外,您还可以期望每个现代 Unix 系统都可以使用 find,但并非所有系统都启用了locate 的数据库。

所以,locate更快,用它来查找文件的位置,find更通用。没有更好的通用方法。

答案2

通常locate数据库每天更新一次。因此,如果您需要搜索比一天更新的任何内容,您可能需find要这样做。

另一方面,您需要搜索的文件系统越大,搜索速度locate就越快find。如果文件系统位于网络共享上,则尤其如此。

相关内容