在 MacOS Catalina 上使用 mdfind 定位函数
Posted
技术标签:
【中文标题】在 MacOS Catalina 上使用 mdfind 定位函数【英文标题】:Make a function locate using mdfind on MacOS Catalina 【发布时间】:2020-08-11 12:16:29 【问题描述】:由于我使用的是 MacOS Catalina,我想从有用的mdfind
中受益,以查找与名称匹配的任何文件或目录。
我想覆盖定位功能(经典功能,仍可通过键入\locate
使用。
这里是位于~/bin/locate
中的小二进制文件:
#!/bin/bash
if [ "$2" != "" ]; then
mdfind "kMDItemDisplayName == '*$(echo $1)*'c" -onlyin "$2"
else
mdfind "kMDItemDisplayName == '*$(echo $1)*'c"
fi
如果没有第二个参数,我想查找与 $1(第一个参数)匹配且不区分大小写的所有文件。
如果有第二个参数,它对应于我们想要进行研究的路径。
但是这个新功能定位效果不好。有时会找到文件,有时却找不到,我不明白为什么?
如何修改此脚本以匹配参数 $1 提供的子字符串,特别是,我不知道我是否必须使用 @ 执行 $(echo $1)
、$(echo "$1")
、echo "$1"
、"$1"
或其他事情987654329@选项?
我只想找到文件的所有子字符串(如果可能的话,可能还有目录)。我不想使用 Linux "locate
",因为我必须每次都更新,不像 mdfind
总是更新。
【问题讨论】:
【参考方案1】:并非所有项目都有显示名称,但大多数项目似乎都有一个。如果要搜索文件名,请使用 kMDItemFSName
。 FS 表示文件系统。
我也认为不需要echo
:mdfind "kMDItemDisplayName == '*$1*'c" -onlyin "$2"
如果您提供一个没有返回结果但应该返回结果的查询示例,将会很有帮助。
【讨论】:
以上是关于在 MacOS Catalina 上使用 mdfind 定位函数的主要内容,如果未能解决你的问题,请参考以下文章
在 macOS Catalina 上安装 RcppArmadillo 时出错 [重复]
无法在 macOS Catalina 10.15.4 上安装 bsddb3 Python 包
辅助功能检查器无法在 MacOS Catalina 和 Mojave 上的 Xcode 11.x、iOS 13.x 上运行
MacBook Pro(13 英寸,2011 年末)A1278 官方最高支持macOS High Sierra,使用macOS Catalina Patcher成功安装macOS Catalina