【问题标题】:Missing results with mdfind使用 mdfind 丢失结果
【发布时间】:2013-04-21 22:49:33
【问题描述】:

我有一些从免费图书馆下载的 PDF 文件,我想不时搜索这些文件。为此,我想使用一个执行“mdfind”命令的 shell 脚本。 由于我的计算机上有很多 PDF,我不希望对这些 PDF 中的每一个都执行 kMDItemTextContent。我只想搜索特定的一组 PDF。

我的问题是,当我聚焦搜索这些 PDF 时——例如,它们的文件名中都有某个单词——所有 13 个 PDF 都会在结果中弹出,但是当我使用 mdfind 搜索某个文件夹中的 PDF 时,只有 2 个出现。

这是我使用的:

mdfind -onlyin '/Users/folder/folder/folder with spaces/' 'kMDItemContentTypeTree=="com.adobe.pdf"'

谁能告诉我为什么?!

更新:以上只是关于找到正确的 PDF,而不是关于实际的文本搜索..

【问题讨论】:

    标签: macos shell terminal spotlight


    【解决方案1】:

    mdfind 在我的图书文件夹中也缺少一些 PDF:

    $ comm -3 <(printf %s\\n ~/Documents/books/**/*.pdf | sort) <(mdfind -onlyin ~/Documents/books kMDItemContentType=com.adobe.pdf | sort) | wc -l
           6
    

    mdimport ~/Documents/books 没有帮助,但在我使用 sudo mdutil -Ea 重建 Spotlight 索引后,它找到了所有这些文件。

    【讨论】:

    • 实际上,Spotlight 索引的重建解决了手头的问题,之后我列出了所有结果,但是,它导致了另一个问题。就像我在原帖中所说的那样,我想在将搜索范围缩小到一组 PDF 之后搜索 PDF 的内容。所以重建索引并没有索引 PDF 的内容,所以我不能在我的 mdfind 查询中使用 kMDItemTextContent。 Mdimport 解决了这个问题。我怀疑 PDF 的大小与此有关,因为通常情况下,PDF 的内容是被索引的......不是他们吗?! :)
    猜你喜欢
    • 1970-01-01
    • 2021-06-26
    • 1970-01-01
    • 2013-04-12
    • 2012-11-24
    • 1970-01-01
    • 2015-01-16
    • 2010-11-05
    • 1970-01-01
    相关资源
    最近更新 更多