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

1

System: Debian Sid

Problem: Der locateBefehl gibt nur Dateien zurück, die sich außerhalb des Ausgangsverzeichnisses meines Benutzers befinden. Dieses Verhalten ist neu und wurde wahrscheinlich durch ein Paket-Upgrade eingeführt.

Der Befehl verhielt sich normal und gab die Namen der Dateien und Verzeichnisse von einer beliebigen Stelle im System zurück, ist jedoch 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?

xxm
quelle

Antworten:

1

Der locateBefehl verwendet die Datenbank, die über Nacht von erstellt wurde 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 um 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äre der findBefehl meiner Meinung nach nützlicher, da er eher die realen Dateien als eine veraltete Datenbank durchsucht.

Harrymc
quelle