Der Befehl type zeigt dir, wie die Shell einen bestimmten Befehl interpretiert. Damit findest du heraus, ob es sich um einen Alias, eine Funktion, ein Shell-Builtin oder eine ausführbare Datei handelt.

Syntax

type [OPTIONEN] BEFEHL...

Der type-Befehl ist ein Shell-Builtin und in Bash, Zsh und Ksh verfügbar. Das Verhalten kann je nach Shell leicht variieren. Die folgenden Beispiele beziehen sich auf Bash.

Grundlegende Verwendung

Um den Typ eines Befehls zu ermitteln, übergib ihn einfach als Argument:

type wc

Ausgabe:

wc ist /usr/bin/wc

Du kannst mehrere Befehle gleichzeitig prüfen:

type sleep head

Ausgabe:

sleep ist /bin/sleep
head ist /usr/bin/head

Die verschiedenen Befehlstypen

Mit der Option -t gibt type nur ein einzelnes Wort aus, das den Typ beschreibt:

TypBedeutung
aliasShell-Alias
functionShell-Funktion
builtinIn die Shell eingebauter Befehl
fileAusführbare Datei auf der Festplatte
keywordReserviertes Wort der Shell

Beispiele für jeden Typ

Alias:

type -t grep
alias

Auf vielen Systemen ist grep als Alias für grep --color=auto definiert.

Builtin:

type -t echo
builtin

Ausführbare Datei:

type -t cut
file

Schlüsselwort:

type -t for
keyword

Alle Treffer anzeigen

Mit der Option -a zeigt type alle Fundstellen eines Befehls:

type -a pwd
pwd ist ein Shell-Builtin
pwd ist /bin/pwd

Der Befehl pwd existiert sowohl als Shell-Builtin als auch als eigenständiges Programm. Bei der Eingabe wird das Builtin bevorzugt.

Den Pfad einer ausführbaren Datei finden

Die Option -p gibt nur den Pfad aus, wenn der Befehl eine ausführbare Datei ist:

type -p cat
/bin/cat

Bei Builtins liefert -p keine Ausgabe:

type -p pwd

Keine Ausgabe, da pwd primär ein Builtin ist.

Die Option -P (Großbuchstabe) durchsucht dagegen den PATH auch dann, wenn der Befehl kein externes Programm ist:

type -P pwd
/bin/pwd

Funktionen ignorieren

Die Option -f überspringt Shell-Funktionen bei der Suche. Das ist nützlich, wenn du wissen willst, ob hinter einer Funktion auch ein gleichnamiges Programm existiert.

type vs. which

Beide Befehle helfen beim Auffinden von Befehlen, aber type liefert mehr Informationen:

BefehlFindet AliaseFindet FunktionenFindet Builtins
typeJaJaJa
whichNeinNeinNein

Der which-Befehl durchsucht nur den PATH nach ausführbaren Dateien. Der type-Befehl kennt dagegen alle Arten von Befehlen, die die Shell versteht.

Zusammenfassung

Der type-Befehl zeigt dir, wie die Shell einen Befehl interpretiert. Er unterscheidet zwischen Aliassen, Funktionen, Builtins, ausführbaren Dateien und Schlüsselwörtern. Besonders nützlich ist er, wenn du verstehen willst, warum sich ein Befehl anders verhält als erwartet.