Zum Beispiel habe ich git
auf meinem System installiert. Aber ich kann mich nicht erinnern, wo ich es installiert habe. Welcher Befehl ist also geeignet, um dies herauszufinden?
terminal
system-calls
Anders Lind
quelle
quelle
which
Befehl" in der Tat :)Antworten:
Wenn es sich in Ihrem Pfad befindet, können Sie entweder
type git
oder ausführenwhich git
. Derwhich
Befehl hatte Probleme, den richtigen Pfad zu ermitteln (Verwechslung zwischen Umgebungs- und Punktedateien). Fürtype
können Sie nur den Pfad mit dem-p
Argument erhalten.Wenn es nicht auf Ihrem Weg ist, suchen
locate -b git
Sie es am besten mit Es wird alles mit dem Namen "git" finden. Es wird eine lange Liste sein, also könnte es gut sein, sich damit zu qualifizierenlocate -b git | fgrep -w bin
.quelle
locate
endlos (es ist sehr schnell), aber für diejenigen, die es nicht wissen,locate
ist es nur so aktuell wie sein letztes Datenbank-Update, das auf meinem Ubuntu automatisch täglich ausgeführt wird. Der Refresh - Befehl istsudo updatedb
... Auchlocate
hat eingebaute regex Fähigkeit, so Befehle funktionieren wie folgt:locate -br "^git$"
... -b` Mittel , um die Suche auf nur die Filterung des Basisnamen ... oder ohne-b
, sucht er den vollständigen Pfad .. Auch sucht nur nach Pfaden, die Sie für die Suche konfiguriert haben. Es gibt keine andere Befehlszeilensteuerung als Ihre Regexfilter.type
zuwhich
.which
wird leicht verwirrt .type
ist eine eingebaute Shell, die mir Aliasnamen und dergleichen sagt, undwhich
ein externes Programm, das mir den Pfad zu einer ausführbaren Datei zeigt ... obwohl, wenn es eine eingebaute Datei gibt, die in die kommt So wird die ausführbare Datei nicht aufgerufen.which
sind, dass es nicht über Shell-Integrationen und -Funktionen Bescheid weiß (was relevant ist, wenn Sie sich fragen, was die Eingabe des Befehls bewirken wird), und dass es$PATH
auf einigen Systemen eine andere Methode verwendet.Die POSIX-Standardmethode hierfür ist
command -v git
. Alle UNIX-ähnlichen Systeme sollten dies unterstützen.quelle
whereis git
und Sie erhalten den Pfad zum Befehl.Das heißt, wenn sich der Git in Ihrer PATH-Variablen befindet und Sie ihn nicht über Ihren Paketmanager installiert haben, ist er komplexer und Sie sollten den Befehl
find
oder verwendenlocate
.quelle
which
wird ebenfalls empfohlen.type
, eher nichtwhich
. Siehe So verwenden Siewhich
einen Alias-Befehl?Die anderen Antworten hier scheinen weitgehend auf moderne Versionen von Linux ausgerichtet werden, so dass , wenn Sie geschehen , verwenden
git
auf einem Betriebssystem , das nicht überlocate
,whereis
,which
, oderapropos
(wie Solaris, HP - UX, etc), dann gibt es immer die alte Standbyfind
.Bei einigen älteren Versionen der oben aufgeführten Systeme ist möglicherweise eine
-print
Option erforderlichfind
.Und wenn Sie verwenden
locate
, stellen Sie sicher, dass Sieupdatedb
regelmäßig ausgeführt werden. (locate.updatedb
bei einigen BSD-Derivaten)quelle
type
für Programme im Pfad ; Es ist zuverlässig und portabel (außer für 30 Jahre alte Systeme).type
. :) Das gehört definitiv zum Repertoire!find
eine vollständige Tiefensuche des Dateisystems von jedem Ort aus durchgeführt wird, an dem Sie das Stammverzeichnis haben. Sofind / -name git
wird Ihr gesamtes System durchlaufen. Wenn Sie wissen, dass sich das Programm auf Ihrem Pfad befindet, können Sie dies in der Regel tunIFS=":"; path=$PATH; set $path; for dir in $path; do find $dir -name git; done
, obwohl Unix-Dateisysteme so tolerant sind, dass dies auf verschiedene Arten zu Fehlern führen kann, wenn Sie seltsame Zeichen in Ihrem Verzeichnis habenPATH
.PATH
, das Richtige (mit den gleichen Vorbehalten wie zuvor) istIFS=":"; for dir in $PATH; do find "$dir" -name git; done
. Außerdem sollte diese Antwort, um es noch einmal zu wiederholen, nur von Personen verwendet werden, die keinen Zugang zutype
oderwhich
oderlocate
, dh fast niemandem, haben. @ Arceges Antwort ist richtig.Um den Pfad zum installierten Programm zu erhalten, verwenden Sie entweder
whereis
oderwhich
. Wenn Sie den Namen vergessen, können Sie ihnapropos
mit einem Synonym oder einer Beschreibung Ihres Dienstprogramms verwenden, z . B.apropos "version control"
findengit
. Danach folgt natürlich derwhatis
Befehl, die Funktion eines Programms kurz zusammenzufassen. Dies gilt jedoch nicht für alle Programme und Funktionen auf Ihrem System. Versuchen Sie es zum Beispielwhatis "the meaning of life, universe and everything"
.quelle