快速比较

快速比较

我是一名新晋计算机科学专业的学生,​​我一直想知道在 mac 上使用 grep 与聚光灯相比有什么好处。我运行了一个命令来搜索特定文件,因为我不知道它所在的目录,这花了一段时间,但是当我在聚光灯下执行此操作时,结果是即时的。我喜欢使用命令行,它让我的生活比 Mac 上的 UI 目录视图简单得多,所以我想学习如何充分利用它的潜力。

答案1

快速比较

迭代

grep通常是搜索文件内容以查找匹配模式。考虑搜索文件内容。grep必须从给定的起点手动遍历文件系统。

我很好奇你是如何使用的grep

find是标准的 *nix 命令,用于在文件系统中搜索文件。查看手册页,它有很多使用方法。但基本上,它会从给定的起点遍历您的文件系统并查找匹配项。

索引

spotlight是一个 OSX 实用程序,用于搜索索引文件列表。spotlight依赖于索引,因此能够非常快速地查找,因为它不需要手动迭代文件系统。通常工作线程会这样做来构建索引。

与聚光灯的权衡是,如果文件尚未建立索引,那么聚光灯将找不到它,即使它存在。然而,如果目录已经被索引,那么聚光灯就有很好的性能。

其他的

如果您需要搜索文件内容并正在使用版本控制,例如在开发项目中,ag 银搜索者是一个更快的替代方案grep。它适用于版本控制场景,并遵循忽略的文件类型列表来查找包含模式的文件

答案2

作为您可能的解决方案; OS X 还有一个locate利用索引来查找文件的命令。这可能是您在 cli 上看到与您在聚光灯下看到的相同搜索性能的最佳选择。为了设置数据库,您必须运行以下命令:

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist

创建数据库后,您可以使用:

locate <file>

相关内容