在终端我正在使用mdfind 'kMDItemFSLabel = 6'
在我的Mac上查找带有红色文件标签的所有内容。但是,它似乎是用红色标签排除文件夹。我试图让它也返回文件夹,但我似乎甚至无法让任何这些仅限文件夹的查询工作,更不用说将其添加到当前文件结果中了。 mdfind kind:folders
和mdfind 'kMDItemFSLabel=6'
独立工作,但我无法弄清楚如何获得两者:
mdfind kind:folders AND 'kMDItemFSLabel == 6'
mdfind 'kind:folders' AND 'kMDItemFSLabel == 6'
mdfind 'kind:folders kMDItemFSLabel == 6'
mdfind kind:folders kMDItemFSLabel == 6
etc
我得到的只是Failed to create query for [query above]
正确的语法是什么?
一旦我说得对,我怎么说'#34;文件夹和所有文件"?像善良:文件夹+所有'?
编辑:也尝试过:
mdfind kind:folders && 'kMDItemFSLabel == 6' returns every folder on my computer
mdfind kind:folders && kMDItemFSLabel == 6 returns every folder on my computer
mdfind 'kind:folders' && 'kMDItemFSLabel == 6' returns every folder on my computer
mdfind 'kind:folders && kMDItemFSLabel == 6' failed to create query
答案 0 :(得分:10)
<强> TL;医生强>
使用以下 与区域设置无关的命令:
mdfind 'kMDItemUserTags == Red'
mdfind 'kMDItemUserTags == Red && ! kMDItemContentType == public.folder'
mdfind 'kMDItemUserTags == Red && kMDItemContentType == public.folder'
更简单,但区域设置等效 - 这些 仅适用于英语语言区域并且必须本地化才能与其他区域设置一起使用 :
mdfind 'tag:red'
mdfind 'tag:red AND NOT kind:folder'
mdfind 'tag:red AND kind:folder'
有关背景资料,请继续阅读。
更新:事实证明, Spotlight - 因此mdfind
- 说两种不同的语言:
<attribName>:<attribVal
对的 简化,LOCALIZED 语言
kind
(kMDItemKind
)明确设计为报告本地化值AND
(默认值),OR
和NOT
结合使用(请注意,这些不已本地化)。&&
(默认值),||
和!
如果有人知道正确地打电话给这两种语言,请告诉我。
警告: 这两种语言无法混合 - 给定的查询字符串必须使用其中一种或另一种语法。
以下解决方案相应地标记为 SL 和 FL 。 鉴于SL使用本地化的名称,我建议将SL解决方案用于可预测的,与语言环境无关的结果,尽管它更复杂,更详细。
要查找标有红色标签的所有文件和文件夹,请使用:
FL:
mdfind 'kMDItemUserTags == Red'
SL(英文):
mdfind 'tag:red' # in German, `tag:red` would be `attribut:red`
要查找使用红色文件/文件夹标签标记的文件 (而不是文件夹),请使用:
FL:
mdfind 'kMDItemUserTags == Red && ! kMDItemContentType == public.folder'
SL(英文):
mdfind 'tag:red AND NOT kind:folder' # in German, `kind:folder` would be `art:ordner`
要查找使用红色文件/文件夹标签标记的文件夹 (而不是文件),请使用:
FL:
mdfind 'kMDItemUserTags == Red && kMDItemContentType == public.folder'
SL(英文):
mdfind 'tag:red AND kind:folder'
使用mdfind
的一般提示:
+
用于在弹出列表的帮助下逐行创建多个AND组合标准)*.savedSearch
文件(右上角的Save
按钮,默认情况下会保存到~/Library/Saved Searches/
,Query:
字段。mdimport -A
的输出。
-onlyin <folder>
选项。-attr <attribName>
选项。<强>文档强>:
注意:文档严重缺乏,部分内容不正确。 截至2015年5月16日
c
和d
选项被解释为需要作为[c]
附加到运算符和{ {1}},而不是(右侧)操作数,这是OSX在保存交互式构造的查询时所执行的操作;另外,至少在其他选项出口上,甚至没有提到:[d]
;如果您将一个或多个选项字母附加到带引号的字符串,其含义如下w
...匹配案例 - 不敏感c
...在匹配时忽略变音符号(在外国字符的基本字母上方和下方标记)d
...匹配整个单词(从我能说的)w
(任何字符序列。)和*
(一个字符。)通配符。?
并查看mdimport -X
键的条目。 总而言之,从OSX 10.10.3起,Types
和Spotlight查询语言记录不足,挑剔的野兽 - 遗憾的是,试错通常是你最好的朋友。 / p>
答案 1 :(得分:1)
以下似乎有效:
mdfind 'kMDItemContentType = "public.folder" && kMDItemUserTags = "Red"cd'
顺便说一句,cd
末尾的"Red"
表示匹配应该忽略大小写(大写与小写)和变音符号(重音符号等)。