Esto no tiene sentido para mi.
wibble > /dev/null 2>&1
Creo que tendría más sentido si fuera algo como esto:
wibble 2>&1 > /dev/null
En otras palabras
Commands Output Sendall STDERRORS to STDOUT then SEND it all to /dev/null
¿Cuál es el pensamiento detrás del orden de la redirección de comandos xxx > /dev/null 2>1?
                    
                        io-redirection
                                
                    
                    
                        quién soy
fuente
                
                fuente

2>&1alguna manera "une" o "une" o "se casa" con los dos DF, de modo que cualquier cambio [posterior] en uno de ellos se convierte en un cambio en el otro. Este no es el caso. ”Respuestas:
Las redirecciones se procesan de izquierda a derecha. Si lo haces
La primera redirección
stderrapunta al flujo questdoutapunta en ese momento (que es su tty esencialmente). No hacestderrun alias destdout.Luego
stdoutse redirige al segmento de bits. Lastdoutredirección no afecta lastderrredirección anterior .stderrTodavía se refiere a tu tty.Asi que:
imprimirá solo el mensaje de error en su terminal.
La
bashpágina de documentación de redirección menciona esto explícitamente:fuente
&>/dev/nulles semánticamente equivalente a/dev/null 2>&1&>e>&(cuando no se utiliza en el contexto2>&1o>&2, etc.) son Bash-ismos y no son estándar . No deben usarse en scripts de shell que desee que sean portátiles.