На OS X я думаю, что определять местоположение DB заполняется путем выполнения:
sudo /usr/libexec/locate.updatedb
Но найдите, кажется, ничего не находит в или ниже ~ /
locate.updatedb должен индексировать мою домашнюю папку по умолчанию? Если так, какие-либо предложения или идеи, почему это не? Если это не индексирует ~ / по умолчанию, есть ли какие-либо причины не индексировать эту иерархию папок? В противном случае, как я настраиваю его, чтобы сделать так?
Кроме того, когда я выполняю locate.updatedb от ~ / (как некорневой), он работает. Когда я выполняю его от чего-либо ниже (например, ~ / Рабочий стол/) я получаю следующие ошибки:
shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied
find: .: Permission denied
Найдите выполнения как "никого" пользователь для предотвращения других пользователей от способности видеть файлы в определять местоположение базе данных. Поскольку Ваша учетная запись является единственной с разрешением исследовать Ваши файлы, расположиться, не видят их. Даже если Ваша учетная запись является единственным локальным пользователем, это ограничение применяется. Когда Вы sudo
locate.updatedb сценарий, find
управляйте, чтобы это метало икру, конкретно запускается как непривилегированный. В то время как Вы могли изменить сценарий для предотвращения этой проблемы, я не могу сказать, что это рекомендуется.
Кроме того, найдите, не включен по умолчанию, как это, предполагает, что Центр внимания/MDS лучше для большинства людей. Я предложил бы испытать команду mdfind. Если Вы действительно решаете, что хотите, располагаются, чтобы регулярно работать, выполниться sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
загрузить его launchd задание для регулярной переиндексации.