Der `locate`-Befehl (Linux) zeigt keine Dateien im Homedirectory an

273
xxm

System: Debian Sid

Problem: Der locateBefehl gibt nur Dateien zurück, die sich außerhalb meines Heimatverzeichnisses (des Benutzers) befinden. Dieses Verhalten ist neu und wurde wahrscheinlich durch eine Paketaktualisierung eingeführt.

Der Befehl verhielt sich normal und gab die Namen der Dateien und Verzeichnisse von einem beliebigen Ort im System zurück, ist aber jetzt wie beschrieben eingeschränkt.

Ich denke, das hat mit der Datenbank zu tun und vielleicht mit updatedb, aber ich bin nicht mit dem Setup vertraut. Was kann ich überprüfen und ändern, um das normale Verhalten von wiederherzustellen locate?

1

1 Antwort auf die Frage

1
harrymc

Der locateBefehl verwendet die über Nacht von bereitgestellte Datenbank updatedb. Ihr Problem ist, dass aus Datenschutzgründen standardmäßig updatedbkeine Verzeichnisse durchsucht werden, die nicht von jedem Benutzer gelesen werden können .

Wenn Sie eine Datenbank nur für sich selbst erstellen möchten, können Sie Folgendes verwenden:

updatedb -l 0 --output=/home/username/.mydb.db 

Und darin zu suchen mit:

locate -d ~/.mydb.db search-pattern 

Sie können Aliase verwenden, um es bequemer zu machen:

alias lupdatedb="updatedb -l 0 --output=/home/username/.mydb.db" alias llocate="locate -d ~/.mydb.db" 

Da locatejedoch keine neuen Dateien gefunden werden, ohne updatedbzuerst ausgeführt zu werden, würde der findBefehl meiner Meinung nach sinnvoller sein, da er eher die echten Dateien als eine veraltete Datenbank durchsucht.