El >
y >>
de redirección operadores de FD (Descriptores de Archivo)
En bash que han árbol estándar FD que son el estándar de entrada (strin), la salida estándar (strout) y el error estándar (strerr). Estos también pueden ser llamados por FD 0, FD 1 y FD 2, respectivamente.
Normalmente, usted tendría tendría todas FD apuntando a la terminal, pero esto puede ser cambiado mediante el uso de la redirección.
Por ejemplo, si se llama:
command > log.txt
Usted va a redirigir la salida al archivo log.txt
Esto es similar como llamar a:
command 1> log.txt
Como esto sólo redirige strout usted todavía será capaz de ver el error en el terminal.
Con el fin de redirigir strerr para usted log.txt archivo que usted tendrá que ejecutar:
command 2> log.txt
De nuevo, esto sólo redirige strerr. Si desea redirigir tanto stdout y stderr se necesita duplicar su salida stderr a stdout mediante el uso de la >&
comando.
command 1> log.txt 2>&1
Para entender este comando usted necesita leer el formulario de la derecha a la izquierda, primero una copia de stderr se realiza a stdout, entonces strout, es redirigido a la log.txt archivo.
Cuando se utiliza la redirección de esta manera, bash no miran si el archivo existe o no y simplemente crear uno sin importar si eso implica borrar uno existente. Si quieres evitar perder lo que ya ha sido escrito en el archivo de registro puede, a continuación, utilizar la >>
comando en la misma manera que se explicó anteriormente, pero en este caso todas las salidas se anexará a los archivos existentes.
Para su uso en C++ con cin, cout y cerr creo hash dio una respuesta mejor que yo.
Yo no soy un experto en estos así que yo podría haber conseguido algunas cosas mal. Para una información más completa que yo aconsejo la lectura de Bash guía de Greg Wiki