Se mucho esto:
$ command 2>> error
$ command 1>> output
¿Hay alguna manera de que pueda enviar el stderr al archivo de error y el stdout de salida al archivo de salida en la misma línea de bash?
Se mucho esto:
$ command 2>> error
$ command 1>> output
¿Hay alguna manera de que pueda enviar el stderr al archivo de error y el stdout de salida al archivo de salida en la misma línea de bash?
Respuestas:
Solo agrégalos en una línea command 2>> error 1>> output
Sin embargo, tenga en cuenta que >>es para agregar si el archivo ya tiene datos. Mientras que, >sobrescribirá cualquier dato existente en el archivo.
Entonces, command 2> error 1> output si no quieres agregar.
Solo por completar, puede escribir 1>como solo >porque el descriptor de archivo predeterminado es la salida. así 1>y >es lo mismo.
Entonces, se command 2> error 1> outputconvierte,command 2> error > output
command &2>err.log, creo que estoy sintaxis totalmente confusa? (Puede estar en orden un enlace a una respuesta apropiada de todos los ismos de tubería bash)
command &2>err.logno es del todo legítimo: el ampersand en esa sintaxis se usa para el descriptor de archivo como objetivo, por ejemplo command 1>&2, redirigiría stdout a stderr.
Prueba esto:
your_command 2>stderr.log 1>stdout.log
Los números a 0través 9son descriptores de archivo en bash.
0significa entrada estándar, 1representa salida estándar, 2representa error estándar. 3a través 9son de repuesto para cualquier otro uso temporal.
Cualquier descriptor de archivo puede ser redirigido a un archivo u otro descriptor de archivo utilizando el operador >. En su lugar, puede usar el operador>> para agregar a un archivo en lugar de crear uno vacío.
Uso:
file_descriptor > filename
file_descriptor > &file_descriptor
Por favor refiérase a Bash-Scripting Guía avanzada: Capítulo 20. E / S redirección .
Como eso:
$ command >>output 2>>error
O si desea mezclar salidas (stdout y stderr) en un solo archivo, puede usar:
command > merged-output.txt 2>&1
La salida de múltiples comandos se puede redirigir. Esto funciona para la línea de comandos o más útil en un script bash. El -sdirige la contraseña de inmediato a la pantalla.
Los cmds de stdout / stderr de Hereblock se envían a archivos separados y nada que mostrar.
sudo -s -u username <<'EOF' 2>err 1>out
ls; pwd;
EOF
Los cmds stdout / stderr de Hereblock se envían a un solo archivo y se muestran.
sudo -s -u username <<'EOF' 2>&1 | tee out
ls; pwd;
EOF
Los cmds stdout / stderr de Hereblock se envían a archivos separados y stdout para mostrar.
sudo -s -u username <<'EOF' 2>err | tee out
ls; pwd;
EOF
Dependiendo de quién es usted (whoami) y nombre de usuario, se puede requerir o no una contraseña.
1>se puede escribir como>