mdfind 查找 文件名 包含 AAA 或 BBB 或 CCC ,类型 为 PDF 或 pptx 或 key 或 png jpg 或 JPEG 的文件
你可以用 mdfind
的 Spotlight 查询语法组合条件来实现。
要求是:
命令如下:
说明:
👉 如果你只想快速用扩展名来筛选,也可以这样简化(不依赖 UTI):
这个写法更直观,但依赖文件扩展名(有些文件可能扩展名不标准)。
要不要我帮你写一个 shell 脚本,输入关键字数组和扩展名数组,就能自动拼好 mdfind
命令?
UTI 是什么缩写
mdfind '((kMDItemFSName == "*AAA*"cd) || (kMDItemFSName == "*BBB*"cd) || (kMDItemFSName == "*CCC*"cd)) && ((kMDItemFSName == "*.pdf"cd) || (kMDItemFSName == "*.pptx"cd) || (kMDItemFSName == "*.key"cd) || (kMDItemFSName == "*.png"cd) || (kMDItemFSName == "*.jpg"cd) || (kMDItemFSName == "*.jpeg"cd))' 与 mdfind '((kMDItemFSName == "*AAA*"c) || (kMDItemFSName == "*BBB*"c) || (kMDItemFSName == "*CCC*"c)) && ((kMDItemFSName == "*.pdf"c) || (kMDItemFSName == "*.pptx"c) || (kMDItemFSName == "*.key"c) || (kMDItemFSName == "*.png"c) || (kMDItemFSName == "*.jpg"c) || (kMDItemFSName == "*.jpeg"c))' 区别
两者的区别在于 cd
和 c
选项的使用。具体来说:
c
:表示忽略大小写进行匹配。即,无论文件名的大小写如何,都会进行匹配。
cd
:表示 忽略大小写 并 包含文件名中的字符集匹配,也就是说除了忽略大小写外,还会匹配文件名中的字符集。
区别总结:
使用场景:
处理字符集 是什么 意思
"处理字符集"(character set handling)指的是如何在计算机系统中处理和识别不同类型的字符,尤其是在包含各种语言符号、字母、数字以及其他特殊字符时。
解释:
字符集处理的挑战:
不同语言:比如英语的字母、中文的汉字、日语的假名等,所有这些字符在计算机中都有不同的编码。
字符编码:字符集本身定义了字符和数字之间的映射关系。常见的编码标准有 ASCII、UTF-8、UTF-16 等。
特殊字符:除了字母和数字,还有一些符号,比如标点符号、数学符号、货币符号、表情符号等,计算机需要确保能够正确处理这些字符。
例子:
大小写敏感性:
国际化字符:
在 mdfind
中:
总结:
“处理字符集”就是指在比较和搜索文本时,不仅考虑字符的大小写,还要处理其他语言和符号,确保在不同语言环境或不同编码下能正确匹配文件名中的所有字符。