3

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

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

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

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

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

2 ответа2

2

Подобное обсуждение было недавно опубликовано в вопросе Какой инструмент наиболее гибок для поиска по всей моей системе: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 ; Я не уверен, что ACL user:_spotlight предоставляет разрешения другим инструментам, которые имеют только ограниченные, если таковые имеются, 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

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

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

Дата последнего изменения - после 01.01.1970

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .