Mac OS X команда locate ничего не возвращает

1516
Jeremy Detrempe

Я не получаю ошибку о том, что БД не существует или не заполняется. Я ничего не получаю. Я точно знаю, что вещи, которые я ищу, существуют на моей коробке. Я даже пытался locate binили locate Users. Я ничего не получаю!

Я пытался обновить db:, sudo /usr/libexec/locate.updatedbно все равно ничего.

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist говорит, что он уже загружен.

Какие-либо предложения?

1
Он говорит, что он уже загружен :( Jeremy Detrempe 11 лет назад 0

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

0
bahamat

Для некоторых вещей есть альтернатива mdfind( mdfindа связанные утилиты - это интерфейс командной строки для Spotlight). Но он находит только то, что сам Spotlight вернул бы.

Но, сохраняя фокус locate, убедитесь, что /var/db/locate.databaseон действительно заполнен. Или, чтобы начать с нуля, отключите поиск через launchctl, запустите locate.updatedbот имени пользователя root и перезагрузите поиск через launchctl. Это должно оставить вас с рабочей базой данных.

0
Graham Perrin

Комментарии 2011 в разделе Автоматическое обновление определяют местонахождение БД по требованию - Mac OS X Подсказки напоминают, что Apple прекратила использование базы данных по умолчанию. Из updatedb.shоткрытого источника для Mac OS X 10.5.8 :

ПРЕДУПРЕЖДЕНИЕ

Выполнение updatedb от имени пользователя root. Это откроет все имена файлов на вашем компьютере для всех пользователей входа в систему, что представляет угрозу безопасности.

Если вы понимаете правильно, из более свежих ответов в разделе Включение каталогов в Locate на Mac OS X  (2015-01-03):

  • если пользователь решит переопределить Apple по умолчанию и заполнить базу данных, то результат будет правильно исключать большую часть того, что находится в домашнем каталоге пользователя.