Pregunta Redirigir todos los resultados al archivo [duplicar]


Esta pregunta ya tiene una respuesta aquí:

Sé que en Linux, para redirigir la salida de la pantalla a un archivo, puedo usar el > o tee. Sin embargo, no estoy seguro de por qué parte de la salida todavía se envía a la pantalla y no se escribe en el archivo.

¿Hay alguna manera de redirigir todo el resultado al archivo?


628
2017-07-13 05:06


origen


Respuestas:


Esa parte está escrita en stderr, use 2> para redirigirlo. Por ejemplo:

foo > stdout.txt 2> stderr.txt

o si quieres en el mismo archivo:

foo > allout.txt 2>&1

Nota: esto funciona en (ba) sh, revisa tu shell para ver la sintaxis correcta


1007
2017-07-13 05:10



Todos los sistemas operativos POSIX tener 3 corrientes: stdin, stdout y stderr. stdin es la entrada, que puede aceptar stdout o stderr. stdout es el resultado primario, que se redirige con >, >>, o |. stderr es la salida de error, que se maneja por separado para que ninguna excepción se pase a un comando o se escriba en un archivo que podría romperse; normalmente, esto se envía a un registro de algún tipo, o se descarga directamente, incluso cuando se redirige el stdout. Para redirigir ambos al mismo lugar, use:

mando &> /some/file

EDITAR: gracias a Zack por señalar que la solución anterior no es portátil, use en su lugar:

*command* > file 2>&1 

Si quiere silenciar el error, haga lo siguiente:

*command* 2> /dev/null

132
2017-07-13 05:16



Para obtener el resultado en la consola Y en un archivo file.txt por ejemplo.

make 2>&1 | tee file.txt

Nota: & (en 2>&1) especifica que 1 no es un nombre de archivo sino un descriptor de archivo.


68
2018-04-09 04:48



Utilizar esta - "require command here" > log_file_name 2>&1

Descripción detallada del operador de redirección en Unix / Linux.

El operador> redirige la salida generalmente a un archivo pero puede ser a un dispositivo. También puede usar >> para agregar.

Si no especifica un número, entonces se asume el flujo de salida estándar, pero también puede redirigir los errores

> file redirects stdout to file
1> file redirects stdout to file
2> file redirects stderr to file
&> file redirects stdout and stderr to file

/ dev / null es el dispositivo nulo que toma cualquier entrada que desee y la descarta. Se puede usar para suprimir cualquier salida.


37
2018-06-11 15:57



Créditos para osexp2003 y j.a. ...


En lugar de poner

&>> your_file.log

detrás de una línea en

crontab -e

yo suelo

#!/bin/bash
exec &>> your_file.log
…

al comienzo de un script BASH.

Ventaja: tiene las definiciones de registro dentro de su secuencia de comandos. Bueno para Git, etc.


23
2018-03-19 14:26



Puede ser el error estándar. Puedes redirigirlo:

... > out.txt 2>&1

15
2017-07-13 05:10



Mando:

foo >> output.txt 2>&1

Anexa al salida.txt archivo, sin reemplazar el contenido.


14
2017-11-24 17:08



Puedes usar exec comando para redirigir todos los resultados stdout / stderr de cualquier comando posterior.

secuencia de comandos de ejemplo:

exec 2> your_file2 > your_file1
your other commands.....

12
2018-04-26 14:32



Utilizar >> para anexar:

command >> file


7
2018-04-16 09:38



En Linux Mint, esta secuencia de comandos encaminó la ejecución de secuencias de comandos y errores a un solo archivo de texto. bash -x ./setup.sh > setup.txt 2>&1. El nombre del script fue setup.sh y el destino de salida fue setup.txt.


-3
2017-08-02 10:55