我是一名新晋计算机科学专业的学生,我一直想知道在 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>