复合 mdfind 搜索

2023-12-03

目标是查找某个州或国家/地区的所有图像。

mdfind kind:image

会找到所有图像

mdfind "kMDItemCountry == 'United States'"

将找到具有此属性的所有文件。

mdfind kind:image "kMDItemCountry == 'United States'" 

失败。我尝试过使用 && 和 () 的各种分组,但无法使其工作。如何成功地将“kind:image”与 kMDIxxx 等属性搜索结合起来?


我有机会做了一些实验mdfind真正有效,而不是它的记录方式 - 两者是不同的。

首先,让我们看一下名为的文件的 Spotlight 数据tardis.png我的 Mac 上一直挂着它。

mdls tardis.png

Output

_kMDItemOwnerUserID            = 501
kMDItemBitsPerSample           = 32
kMDItemColorSpace              = "RGB"
kMDItemContentCreationDate     = 2017-05-31 14:15:03 +0000
kMDItemContentModificationDate = 2017-05-31 14:15:03 +0000
kMDItemContentType             = "public.png"
kMDItemContentTypeTree         = (
    "public.png",
    "public.item",
    "public.png",
    "public.data",
    "public.image",
    "public.content"
)
kMDItemCreator                 = "Adobe Photoshop CC 2017 (Macintosh)"
kMDItemDateAdded               = 2017-05-31 14:15:23 +0000
kMDItemDisplayName             = "tardis.png"
kMDItemFSContentChangeDate     = 2017-05-31 14:15:23 +0000
kMDItemFSCreationDate          = 2017-05-31 14:15:22 +0000
kMDItemFSCreatorCode           = "8BIM"
kMDItemFSFinderFlags           = 0
kMDItemFSHasCustomIcon         = (null)
kMDItemFSInvisible             = 0
kMDItemFSIsExtensionHidden     = 0
kMDItemFSIsStationery          = (null)
kMDItemFSLabel                 = 0
kMDItemFSName                  = "tardis.png"
kMDItemFSNodeCount             = (null)
kMDItemFSOwnerGroupID          = 20
kMDItemFSOwnerUserID           = 501
kMDItemFSSize                  = 1488497
kMDItemFSTypeCode              = "PNGf"
kMDItemHasAlphaChannel         = 0
kMDItemKind                    = "Portable Network Graphics image"
kMDItemLogicalSize             = 1488497
kMDItemOrientation             = 1
kMDItemPhysicalSize            = 1490944
kMDItemPixelCount              = 2091600
kMDItemPixelHeight             = 1494
kMDItemPixelWidth              = 1400
kMDItemProfileName             = "sRGB IEC61966-2.1"
kMDItemResolutionHeightDPI     = 72
kMDItemResolutionWidthDPI      = 72

这是匹配并列出该文件的查询:

mdfind -onlyin . "(kMDItemPixelHeight>1500 || kMDItemPixelWidth=1400)&& kMDItemKind='*image*' && kMDItemProfileName='srgb*'c"

这展示了如何进行复合搜索&&(和)和||(OR),如何将括号内的条件分组(conditionA || conditionB)以及如何进行不区分大小写的搜索(通过附加c在搜索字符串之后)。


Examples: 也许更多供我自己参考;-)

列出我在 Mac 上用于制作图片的所有相机和扫描仪:

mdfind -0 kind:image |  xargs -0 mdls -n kMDItemAcquisitionModel | sort -u
kMDItemAcquisitionModel = "645 PRO Mk III for iOS"
kMDItemAcquisitionModel = "BlackBerry 8900"
kMDItemAcquisitionModel = "BlackBerry 9000"
kMDItemAcquisitionModel = "Canon EOS 5D Mark III"
kMDItemAcquisitionModel = "Canon EOS 5D"
kMDItemAcquisitionModel = "Canon EOS 7D Mark II"
kMDItemAcquisitionModel = "Canon EOS 7D"
kMDItemAcquisitionModel = "Canon EOS-1D Mark II N"
kMDItemAcquisitionModel = "Canon EOS-1D Mark IV"
kMDItemAcquisitionModel = "Canon EOS-1D X"
kMDItemAcquisitionModel = "Canon EOS-1DS"
kMDItemAcquisitionModel = "Canon EOS-1Ds Mark II"
kMDItemAcquisitionModel = "Canon EOS-1Ds Mark III"
kMDItemAcquisitionModel = "EOS-1Ds Mark III"
kMDItemAcquisitionModel = "EPSON Perfection 4990"
kMDItemAcquisitionModel = "NIKON D800"
kMDItemAcquisitionModel = "NIKON D800E"
kMDItemAcquisitionModel = "Perfection 4990"
kMDItemAcquisitionModel = "Perfection4990"
kMDItemAcquisitionModel = "PerfectionV700  "
kMDItemAcquisitionModel = "PerfectionV700"
kMDItemAcquisitionModel = "TANGO           "
kMDItemAcquisitionModel = "TANGO"
kMDItemAcquisitionModel = "iPad mini 4"
kMDItemAcquisitionModel = "iPad mini"
kMDItemAcquisitionModel = "iPad"
kMDItemAcquisitionModel = "iPhone 3G"
kMDItemAcquisitionModel = "iPhone 3GS"
kMDItemAcquisitionModel = "iPhone 4"
kMDItemAcquisitionModel = "iPhone 4S"
kMDItemAcquisitionModel = "iPhone 5"
kMDItemAcquisitionModel = "iPhone 5s"
kMDItemAcquisitionModel = "iPhone 6"
kMDItemAcquisitionModel = "iPhone 6s"
kMDItemAcquisitionModel = "iPhone SE"
kMDItemAcquisitionModel = "iPhone"

查找用 iPhone 6 拍摄的所有照片:

mdfind "kMDItemAcquisitionModel='*iPhone*6*'"

Notes:

  • 手册页说-onlyin将搜索范围限制到指定目录。这实际上并不正确,因为它也会递归到包含的目录中。

  • 是否使用单个(=) 或双 (==) 比较中的等号。

  • 文档说你可以使用string==[c]"pattern"对于不区分大小写的搜索,这是不正确的,我上面显示的语法至少在 macOS Sierra 上有效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

复合 mdfind 搜索 的相关文章

随机推荐

  • Getresponse API 2(使用 PHP 添加自定义字段和联系人)

    我对编码和 Web 开发还很陌生 而深入研究 API 是我希望自己从未做过的事情 然而话虽这么说 我的进步比预期的要远 我现在在尝试将自定义字段添加到添加联系人功能时遇到问题 我试图获取代码以在用户点击我的感谢页面时添加隐藏的表单输入字段
  • 为什么我无法在 Mac OS Sierra 上安装 Sass?

    我已经尝试在 Mac OS Sierra 10 12 上从终端输入以下代码安装 Sass 3 次 sudo gem install sass 然后它要求我输入密码 我输入密码 但没有任何反应 我什至等了半个小时 它甚至没有给出任何错误或任何
  • 使用目标文件名变量重命名文件时出现“错误文件名或编号”

    我正在尝试循环一个充满 html 文件的文件夹 并在文件的开头添加一些代码 尽管我在插入的代码之前遇到了一些不需要的换行符 并且还获取了
  • svg / d3.js 矩形一侧的圆角

    我知道 svg 有一个内置函数可以做圆角 但我只需要在四个角中的 2 个上做圆角 我知道我可以在彼此之上绘制多个矩形来模仿这一点 但这看起来有点俗气 有什么方法可以使用剪辑或任何 d3 js 方法来做到这一点吗 现在我有一个水平条形图 其中
  • Python Dataframe 向列添加描述

    我想向列添加描述 例如我收集数据的数据源 这样的事可能吗 大约8年前有人问过类似的问题将我自己的描述属性添加到 Pandas DataFrame没有答案 My code df index colA colB description from
  • 创建会话时添加另一个 cookie [重复]

    这个问题在这里已经有答案了 在我用struts 2 javax servlet v 2 5和嵌入式tomcat lib 开发的Web应用程序中 当创建HttpSession时 第一次调用request getSession 我总是在第一个请
  • 如何将宽度 100% 应用于可滚动的表格主体

    我正在尝试实现表体可滚动 我能够成功做到这一点 但现在我面临宽度 100 的问题 请检查这个jsfiddlehttps jsfiddle net Ratan Paul stpgd6x6 table thead style display b
  • JavaScript 匹配任何字母字符

    在 PHP 中 我可以使用这个正则表达式来匹配字符串中的任何字母字符 preg match pL int 1 然而在 JavaScript 中这是不可用的 pL test false 我猜这是由于不同的正则表达式解释器造成的 并且在某些浏览
  • 使用 Spring Data neo4j 创建空间索引时出错

    我正在研究 Neo4j Spring Data 项目 想要在节点上执行一些与空间相关的操作 实体类 NodeEntity public class User GraphId Long id private String fname priv
  • 在 Android 中通知您发送的消息是否发送成功

    我这里有一些代码来发送消息 SmsManager sms new SmsManager getDefault sms sendTextMessage 911 null HALP PendingIntent null Developer an
  • Codeigniter - 使用 edit_unique 编辑表单(重新填充)

    看来edit unique函数 它被描述为here 更新记录时验证 CodeIgniter 中的唯一性 杀死set value功能 一切正常 就像这样 echo form input username set value username
  • 需要常量表达式吗? (Java switch 语句)

    我不知道是什么导致了这个错误 我和老师仔细检查了一遍 也没有发现问题所在 import java util Scanner public class MailAssignment public static void main String
  • spring MVC 多文件上传

    我正在使用 Spring MVC 和 JSP 我想上传 2 个文件 但问题是只上传了一个文件 下面是代码
  • 在写入文件之前美化 JSON 的 cURL 下载

    我正在使用 cURL 7 39 0 调用 REST Web 服务并将响应写入 json file curl L X POST b cookies txt H Content Type application json http localh
  • [电子邮件受保护] 还不够;无法点击屏幕底部[重复]

    这个问题在这里已经有答案了 可能的重复 iPhone 5 模拟器 无法点击屏幕底部 我添加了一个 电子邮件受保护 到我的项目 导致信箱区域消失 然而 对于这个项目 我发现这不够 我无法点击屏幕底部的任何像素 并且全屏动画会遮蔽该区域 信箱区
  • Django 模板不存在 admin/login.html

    我正在使用 django 1 4 并且出现了这个错误 模板不存在于 admin 管理 登录 html 我尝试重新安装 django 但没有成功 请帮助 您可以尝试将管理模板路径名添加到 django settings py 中的 TEMPL
  • gnuplot rowstacked 直方图:如何将总和放在条形上方

    这个问题与gnuplot 直方图 如何将值放在条形顶部 我有一个数据文件file dat x y1 y2 1 2 3 2 3 4 3 4 5 和 gnuplot set style data histogram set style hist
  • 如何在 VB.NET 中创建通用属性?

    我想做这样的事情 Private myCollection As IList Of T Public Property MyProperty Of T as IList Of T Get Return Me myCollection End
  • CryptGenRandom() 是线程安全的吗?

    CryptGenRandom 对于单个全局程序范围的 HCRYPTPROV 实例来说是线程安全的吗 MSDN 似乎缺乏这方面的任何信息 https msdn microsoft com en us library windows deskt
  • 复合 mdfind 搜索

    目标是查找某个州或国家 地区的所有图像 mdfind kind image 会找到所有图像 mdfind kMDItemCountry United States 将找到具有此属性的所有文件 mdfind kind image kMDIte