Ich weiß was
program > /dev/null 2>&1
tut. Es leitet die Ausgabe nach /dev/null
um und 2>&1
bedeutet, die Fehlerausgabe an dieselbe Stelle umzuleiten, an die die Ausgabe gesendet wird.
Mein Problem ist, dass ich es immer googeln muss, weil ich mich nie daran erinnere.
Also versuche ich &2>1
, 1>2&
, 1>&2
… Ich probiere jede Kombination aus, bis ich sie google…
Was ist der Trick, um es sich leicht zu merken?
Akzeptierte Antwort:
Die Ausgabe ist besser als der Fehler, also steht sie an erster Stelle (1 vs. 2).
>
ist eine Abkürzung für „geht zu“. Auf der linken Seite ist, was ich senden möchte und auf der rechten Seite, wo ich es senden möchte. Da „wo“ (fast) immer eine Datei ist, so etwas wie
program > /dev/null 2>1
würde zu einer Datei namens 1 umleiten. Das kaufmännische Und (&)
ändert die Datei in den Dateideskriptor.
Leider bin ich weder darauf gestoßen noch habe ich meine eigene Mnemonik entwickelt, aber als ich zum ersten Mal * nix lernte, fand ich, dass dieser logische Weg gut funktioniert. Nach ein paar Durchläufen wird es zur zweiten Natur.