Suchen & Aktualisiertb - Dateien nicht gefunden

8

ich rannte

sudo /usr/libexec/locate.updatedb

dann

locate Radium3

aber es gibt nichts zurück!

aber

$ ls ~/Library/Containers/com.catpigstudios.Radium3/
Container.plist Data

Warum werden nicht locatealle Dateien angezeigt?

Benutze ich diesen Befehl unter OS X korrekt?

davidhq
quelle

Antworten:

5

Versuchen:

sudo /usr/libexec/locate.updatedb

Und schauen Sie config:

/etc/locate.rc die Konfigurationsdatei

Bearbeitet:

Post hier Ausgabe:

echo $LOCATE_CONFIG

Und:

cat /etc/locate.rc

Und:

echo $0

Aktualisieren:

https://developer.apple.com/library/mac/documentation/Darwin/Reference/Manpages/man1/locate.1.html#//apple_ref/doc/man/1/locate

Das Suchprogramm durchsucht eine Datenbank nach allen Pfadnamen, die dem angegebenen Muster entsprechen. Die Datenbankdatenbank wird regelmäßig (normalerweise wöchentlich oder täglich) neu berechnet und enthält die Pfadnamen aller Dateien, auf die öffentlich zugegriffen werden kann .

Versuchen Sie mdfind statt finden

Aktualisiert2:

mdfind -name Text, der genauer ist. Nur mdfind Text gibt Ihnen Dateien, die auch Text enthalten. - David Krmpotic

mdfind -name text
user3439968
quelle
Ich habe #SEARCHPATHS="/"in der Konfiguration nicht kommentiert, es hat nicht geholfen. -vOption scheint keine zusätzliche Ausgabe zu produzieren: /
Davidhq
Geben Sie zusätzliche Informationen für mich plz. In Antwort "Bearbeitet" Abschnitt.
user3439968
1
$ ls -la /var/db/locate.database -r - r - r-- 1 niemand Rad 19463861 6. April 20:08 /var/db/locate.database $ find david.jpg / Users / david / temp /david.jpg
davidhq
1
Sie sollten Ihre Antwort aktualisieren, mdfind -name textdie genauer ist. Nur mdfind textgibt Ihnen Dateien , die enthalten Text als auch.
Davidhq
3

Berechtigungen können der Schuldige sein, da locate anscheinend keine Dateien lesen kann, die nicht weltweit lesbar sind. Weitere Erklärungen finden Sie in dieser Antwort von Plundra .

Das findutils- Paket von homebrew aktiviert gupdatedbund glocatebefiehlt Befehle, die einige der Einschränkungen der integrierten Dienstprogramme zu überwinden scheinen.

VogonPoetLaureate
quelle
Vielen Dank! Aber jetzt, wo ich weiß, mdutilmacht es Sinn, dies zu überprüfen? Ein Anwendungsfall, den ich mir vorstellen kann, ist, dass ich das erneute Scannen manuell auslösen kann gupdatedb- mit Spotlight nicht so einfach oder es würde länger dauern (es indiziert auch den Inhalt von Dateien). Gibt es noch andere Vorteile?
Davidhq
1
Die Neuindizierung mit mdutil / spotlight kann mit Sicherheit eine Weile dauern. updatedbist dafür schneller. glocatescheint kein Problem damit zu haben, Systemdateien zu indizieren, während ich finde, dass mdfind~ / Library und andere Systemdateien ignoriert werden. Ich finde definitiv, dass ich unter den meisten Umständen mehr Hits mit glocateOver bekomme mdfind. YMMV.
VogonPoetLaureate
ok, ich teste das jetzt. Ich glaube, ich habe ein Problem gefunden ... Faust lief ich sudo gupdatedbund speicherte dann die glocate RadiumAusgabe. Dann rannte ich gupdatedbund es stand : /.Trashes: Permission denied, das gleiche für einige andere Ordner. Ich habe die Ausgabe für beide verglichen und es war das gleiche! Seltsam ...
Davidhq
Nach dem, was Sie sagen, haben Sie zuerst ausgeführt sudo gupdatedb(als Root ausgeführt) und später gupdatedbals normaler Benutzer ausgeführt, der keinen Zugriff auf die Dateien hat, auf die der Root-Benutzer Zugriff haben würde, was bedeutet, dass Sie diese erhalten würden Erlaubnis verweigert Fehler. Wenn Sie eine vollständige Datenbank mit Dateinamen für Ihr gesamtes System benötigen, führen Sie diese weiterhin als Root aus. Dadurch werden Ihre Dateien anderen Benutzern im System zugänglich gemacht, die den glocateBefehl möglicherweise verwenden . Aber wenn Sie der einzige Benutzer sind, sollte das in Ordnung sein.
VogonPoetLaureate
2

Wenn Sie dieselbe Datenbank durchsuchen möchten, die Spotlight verwendet, können Sie den mdfindBefehl als Alternative (obwohl kein exakter Ersatz) für Folgendes verwenden locate:

mdfind Radius3
bneely
quelle