it-swarm.com.de

Unterschied zwischen den Befehlen "whereis", "locate" und "find"

Was sind die Unterschiede zwischen den Befehlen whereis, locate und find unter Ubuntu? Was sind die grundlegenden Unterschiede aus der Sicht der Suche?

2
Avani badheka

Von GNU Findutils Hilfeseite

Das Suchprogramm durchsucht einen Verzeichnisbaum nach einer Datei oder einer Gruppe von Dateien. Es durchläuft den Verzeichnisbaum und meldet alle Vorkommen einer Datei, die den Spezifikationen des Benutzers entsprechen. Das Suchprogramm enthält sehr leistungsstarke Suchfunktionen.

Das Suchprogramm durchsucht eine oder mehrere Datenbanken mit Dateinamen und zeigt Übereinstimmungen an. Dies kann als sehr schneller Suchbefehl verwendet werden, wenn die Datei während der letzten Aktualisierung der Dateinamendatenbank vorhanden war.

find verwenden Sie also, wenn Sie nach bestimmten Kriterien suchen und auch Dateien bearbeiten möchten. Es hat viel mehr Optionen als locate und ermöglicht so eine weitaus feinere Kontrolle der Ergebnisse. Dies ist langsam, da die angeforderten Tests für jede Datei durchgeführt werden, um festzustellen, ob sie übereinstimmt.

locate wird verwendet, um das gesamte System schnell nach etwas zu durchsuchen - Sie können dies verwenden, wenn Sie keine Ahnung haben, wo sich etwas befindet, oder wenn Sie alle zugehörigen Dateien finden möchten, die an verschiedenen unbekannten Orten verstreut sind. Es ist schnell, weil es eine binäre Datenbank verwendet, um das System zu indizieren. Führen Sie zuerst Sudo updatedb (die Datenbank, die einmal täglich von cron aktualisiert wurde) aus, damit neue Dateien angezeigt werden.

der Befehl whereis gibt einfach den Speicherort der ausführbaren Dateien, der Manpages und der Quellen eines Programms zurück (siehe man whereis).

5
Zanna

Der große Unterschied besteht darin, dass find rekursiv nach realen Dateien in einem bestimmten Verzeichnis sucht, während locate eine Datenbank durchsucht, ohne dass ein bestimmtes Verzeichnis erforderlich ist. Wenn Sie eine Datei vor dem Aktualisieren der Datenbank gespeichert haben, wird find sie finden, locate jedoch nicht.

Bei whereis und which wird nur in den Verzeichnissen gesucht, die in Ihrer PATH-Variablen aufgeführt sind, und nur in den Verzeichnissen, für die ausführbare Berechtigungen festgelegt wurden

1