Redirigir todos los resultados al file

Sé que en Linux, para networkingirigir la salida de la pantalla a un file, puedo usar el > o el 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 file.

¿Hay alguna manera de networkingirigir todo el resultado al file?

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

 foo > stdout.txt 2> stderr.txt 

o si quieres en el mismo file:

 foo > allout.txt 2>&1 

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

Todos los sistemas operativos POSIX tienen 3 flujos : stdin, stdout y stderr. stdin es la input, que puede aceptar stdout o stderr. stdout es el resultado primario, que se networkingirige con > , >> o | . stderr es la salida de error, que se maneja por separado para que ninguna exception se pase a un command o se escriba en un file que podría romperse; normalmente, esto se envía a un logging de algún tipo, o se descarga directamente, incluso cuando se networkingirige el stdout. Para networkingirigir ambos al mismo lugar, use:

command &> /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 

Para get el resultado en la console Y en un file file.txt por ejemplo.

 make 2>&1 | tee file.txt 

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

Use esto – "require command here" > log_file_name 2>&1

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

El operador> networkingirige la salida generalmente a un file 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 networkingirigir los errores

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

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

Puede ser el error estándar. Puedes networkingirigirlo:

 ... > out.txt 2>&1 

Créditos a osexp2003 y ja …


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 logging dentro de su secuencia de commands. Bueno para Git, etc.

Puede usar el command exec para networkingirigir todo el resultado stdout / stderr de cualquier command posterior.

secuencia de commands de ejemplo:

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

Mando:

 foo >> output.txt 2>&1 

se agrega al file output.txt , sin replace el contenido.

Use >> para agregar:

command >> file

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