it-swarm.com.de

Was bedeutet 2> / dev / null?

Ich möchte eine kurze Erklärung der folgenden Befehlszeile:

grep -i 'abc' content 2>/dev/null 
230
Naive

Der Operator> leitet die Ausgabe normalerweise in eine Datei um, es kann sich jedoch auch um ein Gerät handeln. Sie können auch >> zum Anhängen verwenden.

Wenn Sie keine Zahl angeben, wird der Standardausgabestream angenommen, Sie können jedoch auch Fehler umleiten

> file leitet stdout zur Datei um
1> file leitet die Standardausgabe in eine Datei um
2> file leitet stderr in die Datei um
&> file leitet stdout und stderr in die Datei um

/dev/null ist das Null-Gerät, das beliebige Eingaben entgegennimmt und wegwirft. Hiermit kann jede Ausgabe unterdrückt werden.

333
Warren Hill

Kurz gesagt, es leitet stderr (fd 2) an das Schwarze Loch weiter (verwirft die Ausgabe des Befehls).

Einige häufigere Anwendungsfälle für die Umleitung:

command > /dev/null 2>&1 &

Führen Sie command im Hintergrund aus, verwerfen Sie stdout und stderr

command >> /path/to/log 2>&1 &

Führen Sie command aus und hängen Sie stdout und stderr an eine Protokolldatei an.

26
Terry Wang

/dev/null wird in Linux/Unix als schwarzes Loch behandelt, daher können Sie hier etwas eintragen, aber Sie können es nicht von /dev/null zurückholen.

Ferner bedeutet 2>, dass Sie den stderr (d. H. >) in das Schwarze Loch (d. H. 2) umleiten (d. H. /dev/null).

Ihr Befehl lautet:

grep -i 'abc' content 2>/dev/null 

Versuchen Sie nicht, mit einem weiteren Schrägstrich wie diesem zu enden - 2>/dev/null/ (es ist kein Verzeichnis).

9
Indrajeet Gour

der Inhalt von grep -i 'abc' generiert eine Ausgabe, die auf Ihrer Konsole angezeigt wird, einschließlich etwaiger Fehler.

Wenn Sie 2>/dev/null angeben, werden die Fehler herausgefiltert, sodass sie nicht auf Ihrer Konsole ausgegeben werden.

Genauer gesagt: 2 steht für den Fehlerdeskriptor, in den Fehler geschrieben werden. Standardmäßig werden sie auf der Konsole ausgedruckt.

\> leitet die Ausgabe an den angegebenen Ort um, in diesem Fall /dev/null

/dev/null ist das Standard-Linux-Gerät, auf dem Sie Ausgaben senden, die ignoriert werden sollen.

2
Mauro Zallocco