Respuestas:
El operador> redirige la salida generalmente a un archivo, pero puede ser a un dispositivo. También puede usar >> para agregar.
Si no especifica un número, se supone la secuencia de salida estándar, pero también puede redirigir errores
> file
redirige stdout a archivo
1> file
redirige stdout a archivo
2> file
redirige stderr a archivo
&> file
redirige stdout y stderr a archivo
/dev/null
es el dispositivo nulo, toma cualquier entrada que desee y la tira. Se puede usar para suprimir cualquier salida.
2>&1
una sintaxis anterior, por &>
lo que no habría funcionado hace años, pero ambas son equivalentes.
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 &
Ejecutar command
en segundo plano, descartar stdout
ystderr
command >> /path/to/log 2>&1 &
Ejecute command
y agregue stdout y stderr a un archivo de registro.
En Bash 4+, una forma más corta (pero menos legible) es funcional
command &>> /path/to/log
> /dev/null 2>&1
lugar de &> /dev/null
?
&>
es nuevo en Bash 4, el primero es la forma tradicional, estoy muy acostumbrado (fácil de recordar).
&> /dev/null
puede no funcionar en algunos shells pero> / dev / null 2> & 1 funcionará en todos los shells compatibles con POSIX.
fn>target
, donde fn
hay un número de archivo (0-2 típicamente, algunos programas definen más números) y target
generalmente es un nombre de archivo, pero aquí hay otro número de archivo, con el prefijo &
cual es el sintaxis para "Quiero un número de archivo en lugar de un nombre de archivo".
/dev/null
se trata como un agujero negro en Linux / Unix, por lo que puede poner cualquier cosa en esto, pero no podrá recuperarlo /dev/null
.
Además, 2>
significa que está redirigiendo (es decir >
) el stderr (es decir 2
) hacia el agujero negro (es decir /dev/null
)
Tu comando es:
grep -i 'abc' content 2>/dev/null
No intente terminar con otra barra diagonal como esta - 2>/dev/null/
(no es un directorio).
El contenido grep -i 'abc' generará una salida que se mostrará en su consola, incluidos los errores.
Si especifica 2>/dev/null
, filtrará los errores para que no se envíen a su consola.
Más detalladamente: 2 representa el descriptor de error, que es donde se escriben los errores. Por defecto se imprimen en la consola.
\>
redirige la salida al lugar especificado, en este caso /dev/null
/dev/null
es el dispositivo estándar de Linux donde envía la salida que desea ignorar.
> /dev/null 2>&1
y&> /dev/null