Cómo redirigir stderr y stdout a diferentes archivos en la misma línea de bash?
Sé esto mucho:
$ command 2>> error
$ command 1>> output
¿Hay alguna manera de que pueda enviar el stderr al archivo de error y enviar el stdout al archivo de salida en la misma línea de bash?
4 answers
Simplemente añádelos en una línea command 2>> error 1>> output
Sin embargo, tenga en cuenta que >>
es para anexar si el archivo ya tiene datos. Considerando que, >
sobrescribirá cualquier dato existente en el archivo.
Así que, command 2> error 1> output
si no quieres añadir.
Solo para completar, puede escribir 1>
como solo >
ya que el descriptor de archivo predeterminado es la salida. así que 1>
y >
es lo mismo.
Entonces, command 2> error 1> output
se convierte, command 2> error > output
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-10-26 10:45:31
Prueba esto:
your_command 2>stderr.log 1>stdout.log
Más información
Los números 0
hasta 9
son descriptores de archivo en bash.
0
significa entrada estándar, 1
significa salida estándar, 2
significa error estándar. 3
a 9
son de repuesto para cualquier otro uso temporal.
Cualquier descriptor de fichero puede ser redirigido a un fichero o a otro descriptor de fichero usando el operador >
. En su lugar, puede usar el operador >>
para agregar a un archivo en lugar de creando una vacía.
Uso:
File_descriptor > filename
File_descriptor > &file_descriptor
Por favor refiérase a http://www.tldp.org/LDP/abs/html/io-redirection.html .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-04 16:14:44
O si desea mezclar salidas (stdout & stderr ) en un solo archivo, puede usar:
command > merged-output.txt 2>&1
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-10-26 11:47:25
Así:
$ command >>output 2>>error
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-10-26 10:38:54