Cosa significa 2> / dev / null?

Vorrei una breve spiegazione della seguente riga di comando:

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

L’operatore> reindirizza di solito l’output su un file ma può essere indirizzato a un dispositivo. Puoi anche usare >> per aggiungere.

Se non si specifica un numero, viene assunto il stream di output standard, ma è anche ansible redirect gli errori

> file reindirizza lo stdout nel file
1> file reindirizza lo stdout al file
2> file reindirizza lo stderr nel file
&> file reindirizza stdout e stderr al file

/dev/null è il dispositivo null che prende qualsiasi input desiderato e lo getta via. Può essere usato per sopprimere qualsiasi output.

In breve, reindirizza lo stderr (fd 2) nel buco nero (scarta l’output del comando).

Alcuni casi d’uso più comuni per il reindirizzamento:

 command > /dev/null 2>&1 & 

Esegui il command in background, scarta lo stdout e lo stderr

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

Esegui command e aggiungi stdout e stderr a un file di registro.

/dev/null viene trattato come un buco nero in Linux / Unix, quindi puoi inserire qualsiasi cosa in questo, ma non sarai in grado di recuperarlo da /dev/null .

Inoltre, 2> significa che stai reindirizzando (cioè > ) lo stderr (cioè 2 ) nel buco nero (cioè /dev/null )

Il tuo comando è:

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

Non provare a finire con un’altra barra in avanti come questa – 2>/dev/null/ (non è una directory).