Почему Spotlight пропускает некоторые файлы в результатах поиска?

538
user285807

Я пытаюсь использовать Spotlight (Mountain Lion) для рекурсивного поиска по нескольким подпапкам.

(На самом деле это дисковый кеш Firefox, и я просматриваю несколько изображений, поэтому я подумал, что это будет удобнее, чем индивидуальный щелчок по каждому файлу в каждой подпапке дискового кеша.)

Я хочу перечислить (на самом деле увидеть эскиз) КАЖДЫЙ файл (без условий поиска) во всех подпапках этой конкретной папки. Могу ли я не просто перейти к папке в Finder и ввести «*» в Spotlight?

Это дало нулевые результаты, поэтому я протестировал Spotlight (опять же, «*») в известной папке с шестью PDF-файлами и вернул только один PDF-файл.

Что я делаю неправильно?

3

2 ответа на вопрос

2
Billy McCloskey

Подобное обсуждение было недавно опубликовано в вопросе Какой инструмент наиболее гибок для поиска по всей моей системе, locateили mdfind? , Я не мог получить различные заклинания mdfindдля поиска, с которым locateне было проблем. Я предлагаю использовать стандартное locateсредство BSD . Вот что я сделал, чтобы решить ваш конкретный случай с помощью 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' 

Я уверен, что проблема заключается в разрешении разрешения на создание метаданных для поиска и отображения соответствующих областей входа пользователя, которые имеют ограничительные права groupи userправа собственности; Я не уверен, если user:_spotlightACL является предоставление разрешения на другие инструменты, которые только имеют ограниченный, если таковые имеются, groupи userправа доступа - я все еще расследует этот запутанный вопрос. Я проверил и не ограничивал Spotlight настройками конфиденциальности для областей, которые вы ищете.

Как вы, вероятно, знаете, вы можете проверить и изменить ACL с помощью /bin/ls -leи chmod -aили 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, мы придумали довольно портативную утилиту членства в группах, если вы захотите изучить, добавит ли изменение различных файлов userи groupразрешений видимость результатов поиска Spotlights. У меня еще не было возможности попробовать это. Откровенно говоря, я был очень счастлив, так как я снова включил locateв OSX.

1
grg

Поиск Spotlight *не выдаст список всех элементов.

Лучшее, что вы можете сделать в Finder, это ничего не вводить в поле поиска и изменять критерии поиска, чтобы искать файлы с датой изменения после произвольной старой даты.

Last modified date is after 01/01/1970