Der which-Befehl zeigt den vollständigen Pfad eines angegebenen Befehls an, indem er die Verzeichnisse durchsucht, die der PATH-Variablen zugewiesen sind. Wenn Sie beispielsweise eingeben, welche Katze, wird die folgende Ausgabe angezeigt:/bin/cat.
$ which cat /bin/cat
Der which-Befehl kann Ihnen daher dabei helfen, herauszufinden, wo ein Programm installiert wurde, falls Sie dies ändern müssen. Es kann Ihnen auch dabei helfen, festzustellen, welche Version eines Befehls Sie verwenden, wenn mehrere Binärdateien des Befehls an verschiedenen Orten gespeichert sind, von denen eine möglicherweise idealer ist. Indem Sie ermitteln, wo ein Befehl ausgeführt wird, können Sie unerwartetes Verhalten dieses Befehls beheben.
Syntax
Die Syntax des which-Befehls lautet:
$ which [options] {program names}
Wenn beim Ausführen des which-Befehls der folgende Fehler auftritt:
which: command not found
Sie können versuchen, das folgende Paket gemäß Ihrer Wahl der Distribution zu installieren:
Verteilung | Befehl |
---|---|
OS X | brew install debianutils |
Debian | apt-get install debianutils |
Ubuntu | apt-get install npm |
Alpin | apk füge welche hinzu |
Arch Linux | pacman -S was |
Kali-Linux | apt-get install debianutils |
CentOS | yum was installieren |
Fedora | dnf install which |
Raspbian | apt-get install debianutils |
welche Befehlsbeispiele
1. Suchen Sie die Umgebungsvariable PATH und zeigen Sie den Speicherort aller übereinstimmenden ausführbaren Dateien an:
$ which executable
2. Wenn mehrere ausführbare Dateien übereinstimmen, alle anzeigen:
$ which -a executable
Abschließende Gedanken
Der which-Befehl findet eine ausführbare Datei im Suchpfad Ihrer Shell. Sie können sogar das which-Programm selbst finden:
$ which which /usr/bin/which
Wenn mehrere Programme in Ihrem Suchpfad denselben Namen haben (z. B. /usr/bin/who und /usr/local/bin/who), wird nur das erste gemeldet.