为什么 Spotlight 会在我的搜索结果中省略某些文件?

为什么 Spotlight 会在我的搜索结果中省略某些文件?

我正在尝试使用 Spotlight(Mountain Lion)对一堆子文件夹进行递归搜索。

(它实际上是 Firefox 磁盘缓存,我正在查找一些图像,因此我认为这比单独单击磁盘缓存的每个子文件夹中的每个文件更方便。)

我想列出(实际上查看缩略图)该特定文件夹的所有子文件夹中的所有文件(无搜索条件)。我不能只在 Finder 中浏览到该文件夹​​并在 Spotlight 中输入“*”吗?

这样做没有返回任何结果,因此我在一个已知文件夹上测试了 Spotlight(再次,“*”),其中包含六个 PDF,但它只返回了一个 PDF。

我究竟做错了什么?

答案1

最近在问题中发布了类似的讨论哪种工具对于搜索我的整个系统来说最灵活,locate或者mdfind。我无法使用 的各种咒语mdfind进行搜索,但locate没有任何问题。我建议使用标准 BSDlocate工具。以下是我使用 解决您的特定情况的方法locate,但效果并不好:

 $ locate Firefox | grep -i '^/Users/whmcclos.*cache' | head
/Users/whmcclos/Library/Caches/Firefox
/Users/whmcclos/Library/Caches/Firefox/Profiles
/Users/whmcclos/Library/Caches/Firefox/Profiles/cr8059k0.default
/Users/whmcclos/Library/Caches/Firefox/Profiles/cr8059k0.default/.DS_Store
/Users/whmcclos/Library/Caches/Firefox/Profiles/cr8059k0.default/Cache
/Users/whmcclos/Library/Caches/Firefox/Profiles/cr8059k0.default/Cache/0
/Users/whmcclos/Library/Caches/Firefox/Profiles/cr8059k0.default/Cache/0/06
/Users/whmcclos/Library/Caches/Firefox/Profiles/cr8059k0.default/Cache/0/06/ACA5Bd01
/Users/whmcclos/Library/Caches/Firefox/Profiles/cr8059k0.default/Cache/0/06/B30CEd01
/Users/whmcclos/Library/Caches/Firefox/Profiles/cr8059k0.default/Cache/0/09
[...]

但这些咒语对mdfind你没有任何实际用处:

$ mdfind kMDItemFSName="Firefox"
/Users/whmcclos/Library/Application Support/Firefox
/Users/whmcclos/Desktop/Programs/Internet/Firefox
/Volumes/Time Machine/Time Machine Safe/Users/whmcclos/Documents/Programs/Internet/Firefox

$ mdfind -name "Firefox" | grep '^/Users/whmcclos.*cache'

我确信这是一个权限问题,允许元数据创建工具搜索并显示具有限制groupuser所有权权限的正确用户登录区域;我不确定 ACL 是否向其他仅具有有限(如果有)和user:_spotlight权限的工具授予权限- 我仍在调查这个复杂的问题。我检查了一下,我没有使用任何隐私设置将 Spotlight 限制到您正在搜索的区域。groupuser

/bin/ls -le您可能已经知道,您可以使用和chmod -a或 来检查和更改 ACL chmod +a,就像我在我的笔记文件中保留的这个小序列一样,因为我很少使用它并且语法不直观:

# viewing ACL and changing the same:

    $ ls -le
    total 16
    -rw-r--r--+ 1 whmcclos  staff  1918 Dec 18 09:00 README
     0: user:_spotlight inherited allow read,execute,readattr,readextattr,readsecurity
    -rw-r--r--+ 1 whmcclos  staff   192 Nov 15 12:30 try.pl
     0: user:_spotlight inherited allow read,execute,readattr,readextattr,readsecurity

    $ chmod -a "user:_spotlight allow read,execute,readattr,readextattr,readsecurity" README

    $ ls -le
    total 16
    -rw-r--r--  1 whmcclos  staff  1918 Dec 18 09:00 README
    -rw-r--r--+ 1 whmcclos  staff   192 Nov 15 12:30 try.pl
     0: user:_spotlight inherited allow read,execute,readattr,readextattr,readsecurity

    $ chmod +ai "user:_spotlight allow read,execute,readattr,readextattr,readsecurity" README

    $ ls -le
    total 16
    -rw-r--r--+ 1 whmcclos  staff  1918 Dec 18 09:00 README
     0: user:_spotlight inherited allow read,execute,readattr,readextattr,readsecurity
    -rw-r--r--+ 1 whmcclos  staff   192 Nov 15 12:30 try.pl
     0: user:_spotlight inherited allow read,execute,readattr,readextattr,readsecurity

为了实现这一目标,并理解如何进行微调locate以及如何搜索 FS 来填充其内部/var/db/locate.database,我们提出了相当便携的组权限成员资格实用程序如果您想了解更改各种文件usergroup权限是否会增加 Spotlights 搜索结果的可见性。我还没有机会尝试。 locate坦白说,自从我在 OSX 中重新启用它以来,我一直很高兴。

答案2

进行 Spotlight 搜索*不会列出所有项目。

您在 Finder 中可以做的最好的事情就是在搜索框中不输入任何内容,然后更改搜索条件以查找修改日期在任意旧日期之后的文件。

最后修改日期在 1970 年 1 月 1 日之后

相关内容