¿Qué significa 2 / dev / null?

146

Me gustaría una breve explicación de la siguiente línea de comando:

grep -i 'abc' content 2>/dev/null 
    
pregunta Naive 26.09.2013 - 10:21

3 respuestas

213

El & gt; el operador redirige la salida generalmente a un archivo pero puede ser a un dispositivo. También puede usar & gt; & gt; para agregar.

Si no especifica un número, entonces se asume el flujo de salida estándar, pero también puede redirigir los errores

> file redirige stdout al archivo
1> file redirige stdout al archivo
2> file redirecciona stderr al archivo
&> file redirecciona stdout y stderr al archivo

/dev/null es el dispositivo nulo que toma cualquier entrada que desee y la descarta. Se puede usar para suprimir cualquier salida.

    
respondido por el Warren Hill 26.09.2013 - 10:38
16

En resumen, redirige stderr (fd 2) al agujero negro (descarta la salida del comando).

Algunos casos de uso más comunes para la redirección:

command > /dev/null 2>&1 &

Ejecute command en el fondo, descarte stdout y stderr

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

Ejecute command y anexe stdout y stderr a un archivo de registro.

    
respondido por el Terry Wang 26.09.2013 - 10:32
5

/dev/null se trata como un agujero negro en Linux / Unix, por lo que puede poner cualquier cosa en esto, pero no podrá recuperarlo de /dev/null .

Además, 2> significa que estás redireccionando (es decir, > ) el stderr (es decir, 2 ) al agujero negro (es decir, /dev/null )

Su comando es:

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

No intente finalizar con otra barra inclinada como esta - 2>/dev/null/ (no es un directorio).

    
respondido por el Indrajeet Gour 11.06.2015 - 12:57

Lea otras preguntas en las etiquetas