WHICH(1) General Commands Manual WHICH(1)

which - zeigt den vollständigen Pfad von (Shell-)Befehlen

ÜBERSICHT

which [Optionen] [--] Programmname […]

which akzeptiert eines oder mehrere Argumente. Für jedes dieser Argumente schreibt es den vollständigen Pfad der ausführbaren Dateien, die ausgeführt werden würden, wenn dieses Argument an der Eingabeaufforderung der Shell eingegeben wird, in die Standardausgabe. Die vollständigen Pfade werden ermittelt, indem in den in der Umgebungsvariable PATH aufgelisteten Verzeichnissen nach einer ausführbaren Datei oder einem Skript gesucht wird. Dabei wird der gleiche Algorithmus wie der der bash(1) verwendet.

Diese Handbuchseite wurde aus der Datei which.texinfo erzeugt.

gibt nicht nur die erste, sondern alle passenden ausführbaren Dateien in PATH aus.
liest Aliase aus der Standardeingabe, wobei Treffer in die Standardausgabe geschrieben werden. Dies ist in Kombination mit der Verwendung eines Alias für which selbst nützlich. Zum Beispiel:
alias which=´alias | which -i´.
ignoriert die Option --read-alias, sofern diese angegeben wurde. Damit können Sie explizit nach gewöhnlichen ausführbaren Programmen suchen, während Sie die Option --read-alias in einem Alias oder einer Funktion für which verwenden.
liest Shell-Funktionsdefinitionen aus der Standardeingabe, wobei Treffer in die Standardausgabe geschrieben werden. Dies ist in Kombination mit der Verwendung einer Shell-Funktion für which selbst nützlich. Zum Beispiel:
which() { declare -f | which --read-functions $@ }
export -f which
ignoriert die Option --read-functions, sofern diese angegeben wurde. Damit können Sie explizit nach gewöhnlichen ausführbaren Programmen suchen, während Sie die Option --read-functions in einem Alias oder einer Funktion für which verwenden.
überspringt Verzeichnisse in PATH, die mit einem Punkt beginnen.
überspringt Verzeichnisse in PATH, die mit einer Tilde beginnen, sowie ausführbare Dateien, die sich im HOME-Verzeichnis befinden.
gibt den Programmnamen in der Form »./Programmname« anstelle des vollständigen Pfades aus, falls ein Verzeichnisname in PATH mit einem Punkt beginnt und eine passende ausführbare Datei für diesen Pfad gefunden wurde.
gibt eine Tilde aus, wenn ein passendes Verzeichnis das HOME-Verzeichnis ist. Diese Option wird ignoriert, wenn which als Root ausgeführt wird.
stoppt die Ausführung der auf diese Option folgenden Optionen, wenn die Ausgabe kein Terminal ist.
schreibt Versionsinformationen in die Standardausgabe und beendet das Programm erfolgreich.
schreibt Informationen zur Verwendung in die Standardausgabe und beendet das Programm erfolgreich.

which gibt die Anzahl der fehlgeschlagenen Argumente zurück, oder -1, wenn kein Programmname angegeben wurde.

Es ist zu empfehlen, dass Sie für which einen Alias (C-Shell) oder eine Shell-Funktion (Bourne-Shell) folgendermaßen hinzufügen:

[ba]sh:


which ()
{
  (alias; declare -f) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot $@
}
export -f which

[t]csh:


alias which ´alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde´

Mit dem folgenden Befehl werden die lesbaren Verzeichnisse ~/ und ./ ausgegeben, wenn Sie ihn an einer Eingabeaufforderung eingeben, während bei Verwendung in einem Skript der vollständige Pfad ausgegeben wird:


> which q2
~/bin/q2
> echo `which q2`
/home/carlo/bin/q2

Das HOME-Verzeichnis wird aus dem Inhalt der Umgebungsvariable HOME ermittelt, was zum Programmabbruch führt, falls diese nicht existiert. which betrachtet zwei an sich gleiche Verzeichnisse als unterschiedlich, falls eines der Verzeichnisse einen Pfad mit einem symbolischen Link enthält.

Carlo Wood

bash(1)

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Mario Blättermann <mario.blaettermann@gmail.com> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.