In diesem Tutorial behandeln wir den Linux-Befehl which
. Wenn du den Namen einer ausführbaren Datei (Befehl) in die Eingabeaufforderung des Terminals eingibst, hilft dir which
dabei, den Ort der Datei zu finden, die ausgeführt wird. Der Befehl sucht in den Verzeichnissen, die in der Umgebungsvariable PATH
aufgelistet sind, nach der als Argument angegebenen ausführbaren Datei.
Was ist PATH?
In Linux ist PATH
eine Umgebungsvariable, die der Shell und anderen Programmen mitteilt, in welchen Verzeichnissen sie nach ausführbaren Dateien suchen sollen. Sie besteht aus einer Liste von durch Doppelpunkte getrennten absoluten Pfaden zu Verzeichnissen, die die ausführbaren Dateien enthalten.
Um den Inhalt deiner PATH
-Variable einzusehen, verwende den Befehl echo
mit $PATH
als Argument:
echo $PATH
Die Ausgabe sieht etwa so aus:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Wie benutzt man den Befehl which?
Die Syntax für den which
-Befehl lautet wie folgt:
which [OPTIONEN] DATEINAME...
Wenn du zum Beispiel den vollständigen Pfad des ping
-Befehls finden möchtest, gib Folgendes ein:
which ping
Die Ausgabe sieht dann etwa so aus:
/bin/ping
Du kannst dem which
-Befehl auch mehrere Argumente geben:
which netcat uptime
Die Ausgabe enthält die vollständigen Pfade zu den ausführbaren Dateien von sowohl netcat
als auch uptime
:
/bin/netcat
/usr/bin/uptime
Die Suche erfolgt von links nach rechts. Wenn in den Verzeichnissen, die in der PATH
-Umgebungsvariable aufgelistet sind, mehrere Treffer gefunden werden, gibt which
nur den ersten aus. Wenn du alle Übereinstimmungen ausgeben möchtest, verwende die Option -a
:
which -a touch
Die Ausgabe zeigt die vollständigen Pfade zu beiden touch
-Befehlen:
/usr/bin/touch
/bin/touch
Normalerweise handelt es sich bei einer der ausführbaren Dateien nur um einen Symlink
auf die andere. In manchen Fällen kann es jedoch vorkommen, dass du zwei Versionen desselben Befehls an verschiedenen Orten installiert hast oder völlig unterschiedliche Befehle mit demselben Namen.
Zusammenfassung
Der which
-Befehl wird verwendet, um den Ort einer ausführbaren Datei zu finden, indem er in den Verzeichnissen sucht, die in der PATH
-Umgebungsvariable aufgeführt sind. Wenn du Fragen oder Feedback hast, hinterlasse bitte unten einen Kommentar.