将locate的搜索限制到特定目录

将locate的搜索限制到特定目录

有没有办法将locate输出限制到 Mac OS X Snow Leopard 上的特定目录?我在 Ubuntu 论坛上读到了有关使用正则表达式的信息。但是,在我的 mac 上locate不接受-r选项。我还查看了manMac 上的“定位”页面,但没有-r选项。

谢谢。

答案1

只需在locate 的搜索模式中使用shell 通配符即可——该功能是该实用程序的历史功能,所有系统都应该支持。

例如:

$ locate '*/dirname/*filename*'

请务必在搜索字符串周围(或至少在其前面)使用星号,因为一旦使用通配符,locate就会切换逻辑并将搜索字符串锚定到搜索材料的开头和结尾。

答案2

我认为你需要安装另一个版本的locate。我没有 OS X 系统来检查,但 macports 中似乎有 slocate,所以它应该很容易安装,而且我认为它确实有所需的选项。

答案3

尝试mdfind一下。

$ mdfind -onlyin $HOME iTunes

*实用md程序使用与以下相同的数据库聚光灯

答案4

您可以尝试将其与grep命令混合使用,例如:

locate hosts | grep ^/etc

或者:

locate php | grep -e ^/etc -e ^/usr/local/etc

查看多个目录。

如果您经常使用此功能,请为其编写一个包装器。

相关内容