Hallo Jörg,
letztlich ist das uraltes Zeugs, das mindestens in die 70er Jahre des letzten Jahrtausends zurückreicht.
Das Betriebssystem verwaltet geöffnete Dateien über Filedeskriptoren (oder Filehandles) und stellt jedem Programm Deskriptoren für die Standardeingabe, -ausgabe und -fehlerausgabe bereit. Diese Deskriptoren stehen in einer Tabelle, und die stdin/out/err Deskriptoren sind die ersten drei darin.
Die Schreibweise n>datei bedeutet: Leite Ausgaben auf Dateideskriptor n in die genannte Datei um. n>>datei ist das gleiche, nur mit Anhängen statt Ersetzen.
Es gibt auch 2>&1. Das & bedeutet: Was folgt, ist kein Dateiname, sondern eine Deskriptornummer. Deswegen leitet diese Notation die Ausgaben auf stderr nach stdout um.
Der Versuch 2>&0 dürfte aber scheitern, weil Deskriptor 0 eine Eingabedatei ist 😀
Dieses Konstrukt ist weit verbreitet. In Unix und seinem Kind Linux, sowie in CP/M und seinen Nachkommen MS-DOS und Windows.
Rolf
sumpsi - posui - obstruxi