Unterschied zwischen which, whereis und locate
Hallo, liebe User!
Nach langem Suchen bin ich wieder hier angelangt. Es geht um folgende Terminal-Befehle unter Ubuntu: - which - whereis - locate
Ich muss den Unterschied dieser erklären, werde aber aus den Definitionen im Web nicht schlau. Wäre toll, wenn das jemand wüsste.
lg DoShi
2 Antworten
Hallo
Es geht um folgende Terminal-Befehle unter Ubuntu: - which - whereis - locate
streiche das Ubuntu, die sind auf allen Distributionen Zuhause.
Ich muss den Unterschied dieser erklären, werde aber aus den Definitionen im Web nicht schlau.
- Wem und warum mußt Du das Erklären
- Was ist denn an den Manpages nicht zu verstehen?
Es ist doch ganz einfach:
which dasprogramm
sieht in allen eingetragenen Pfaden der Variable $PATH nach ob es eine ausführbare Datei dasprogramm gibt - und nur da.
Das Kommando which, kann unterschiedliche Ausgaben machen, abhängig davon wer es ausführt. Es gibt ja Kommandos die nur root ausführen darf, diese sind dann in der Variablen eines normalen Users nicht drinnen.
whereis egalwas
Lokalisiert Quellen, Binärdateien und Manpage-Teile nach dem gesuchten String: egalwas.
locate irgendwas
Sucht in einer eigenen Datenbank, die man zuvor erstellen lassen muß, nach der Zeichenfolge irgendwas.
- Dabei macht locate keinen Unterschied ob es sich um ein Verzeichnis, eine Datei, einen Link oder sonst was handelt.
- Auch die Rechte des Befehls-startenden Benutzers werden hierbei gänzlich ignoriert.
- Was aber nicht heißt das der Zugriff auf das Gefundene gewährt wird.
Die Datenbank für locate liegt in /var/lib/ oder in /var/cache/locate/ (abhängig von der benutzten Distribution) und ist eine Binärdatei, erzeugt wird diese mit dem Befehl:
updatedb
Wobei ich, wenn ich sie von Hand aktualisieren möchte, immer so vorgehe:
sudo updatedb 2>dev/null
um die Fehlermeldungen (z.B. wegen mangelnder Berechtigung) zu unterdrücken.
Linuxhase
Wow! Vielen, vielen Dank für die ausführliche, verständliche und hervorragende Antwort, jetzt scheint mich das ganze wirklich einfacher als gedacht.
which - gibt den ersten gefundenen Pfad eines Programmes an
whereis - zeigt an, wo ein Programm installiert ist
locate - sucht die geforderte Datei, Anwendung u.a (ähnlich wie bei Windows die Suche).