Welche Ordner werden von "locate" indiziert / abgedeckt

1084

Unter OS X glaube ich, dass die locate-Datenbank mit folgenden Befehlen gefüllt ist:

sudo /usr/libexec/locate.updatedb 

Aber lokalisieren scheint nichts in oder unter zu finden ~ /

Sollte locate.updatedb standardmäßig meinen Heimatordner indizieren? Wenn ja, irgendwelche Vorschläge oder Ideen, warum nicht? Gibt es Gründe, die Ordnerhierarchie nicht zu indexieren, wenn ~ / / nicht standardmäßig indexiert wird? Wenn nicht, wie konfiguriere ich es so?


Wenn ich locate.updatedb von ~ / (als Nicht-Root) ausführe, funktioniert es auch. Wenn ich es von irgendetwas unten aus ausführe (zum Beispiel ~ / Desktop /), erhalte ich die folgenden Fehler:

shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied find: .: Permission denied 
5
Verwenden Sie FileVault? Daniel Beck vor 13 Jahren 0
Nein, ich verwende FileVault nicht. vor 13 Jahren 0

2 Antworten auf die Frage

6
Christian L

Locate läuft als "niemand" -Nutzer, um zu verhindern, dass andere Benutzer "Ihre" Dateien in der locate-Datenbank sehen können. Da Ihr Konto das einzige Konto mit der Berechtigung zum Durchsuchen Ihrer Dateien ist, kann sie von locate nicht angezeigt werden. Auch wenn Ihr Konto der einzige lokale Benutzer ist, gilt diese Einschränkung. Wenn Sie sudodas locate.updatedb-Skript verwenden, wird der von findihm erzeugte Befehl speziell als nicht privilegiert gestartet. Sie können das Skript zwar ändern, um dieses Problem zu vermeiden, aber ich kann nicht sagen, dass es empfohlen wird.

Außerdem ist Suchen nicht standardmäßig aktiviert, da davon ausgegangen wird, dass Spotlight / MDS für die meisten Benutzer besser sind. Ich würde vorschlagen, den Befehl mdfind auszuprobieren. Wenn Sie entscheiden, dass locate regelmäßig ausgeführt werden soll, führen Sie es aus sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist, um den startd-Job für die regelmäßige Neuindizierung zu laden.

Der letzte Teil stammt von der nicht initialisierten `locate`-Hilfemeldung, also von Apple empfohlen. Daniel Beck vor 13 Jahren 0
4
user145742

One can get locate to search almost everywhere by modifying /usr/libexec/locate.updatedb.

Change:

if [ "$(id -u)" = "0" ]; then 

to, say,

if [ "$(id -u)" = "1" ]; then 

Some reduction in security. Use only on a personal computer.