有没有办法将locate
输出限制到 Mac OS X Snow Leopard 上的特定目录?我在 Ubuntu 论坛上读到了有关使用正则表达式的信息。但是,在我的 mac 上locate
不接受-r
选项。我还查看了man
Mac 上的“定位”页面,但没有-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
查看多个目录。
如果您经常使用此功能,请为其编写一个包装器。