Permite dividir la declaración >> /dev/null 2>&1
en partes:
Parte 1:>>
salida de redirección
Esto se utiliza para redirigir la salida del programa y añadir la salida al final del archivo. More...
Parte 2:/dev/null
archivo especial
Esta es una Pseudo-devices special file.
Comando ls -l /dev/null
le dará los detalles de este archivo:
crw-rw-rw-. 1 root root 1, 3 Mar 20 18:37 /dev/null
¿Ha observado crw
? Lo que significa que es un archivo de pseudodispositivo de tipo character-special-file que proporciona acceso en serie.
/dev/null
accepts and discards all input; produces no output (always returns an end-of-file indication on a read). Reference: Wikipedia
Parte 3: descriptor 2>&1
archivo
Cada vez que se ejecuta un programa por el sistema operativo por defecto abierto tres archivos STDIN
, STDOUT
y STDERR
como sabemos cada vez que se abre un archivo del sistema devuelve un pequeño entero llamado como descriptor de archivo. El descriptor de archivo para estos archivos es 0, 1, 2 respectivamente.
Así 2>&1
dice simplemente redirigir a STDERR
STDOUT
&
means whatever follows is a file descriptor, not a filename.
En resumen, mediante el uso de este comando le está diciendo a su programa de no gritar mientras se ejecuta.
¿Cuál es la importancia de utilizar 2>&1
?
Si no desea producir ninguna salida, incluso en caso de algún error en el terminal. Para explicar Tomemos el siguiente ejemplo:
$ ls -l > /dev/null
Para el comando anterior sin salida se imprime en el terminal, pero lo que si este comando produce un error:
$ ls -l file_doesnot_exists > /dev/null
ls: cannot access file_doesnot_exists: No such file or directory
Aunque estoy redirigir la salida a /dev/null
se está imprimiendo en la terminal.Es debido a que no vamos a redirigir la salida de error a /dev/null
modo con el fin de redirigir la salida de error, así que se requiere para agregar 2>&1
$ ls -l file_doesnot_exists > /dev/null 2>&1
FYI: Una forma más corta de silenciar a un proceso es '> & - 2> & - '. – Zaz
@Josh: ¿por qué hacer las cosas aún más crípticas de lo que ya son? – endolith
@Josh Esto cierra los FD respectivos, lo que podría hacer abortar los programas. – glglgl