tuberias salida redireccionar redireccionamiento por pipes mensajes los guardar generados filtros estandar error envían entrada ejemplos dónde defecto crear comandos comando archivo linux bash io-redirection

linux - redireccionar - Redirigir toda la salida al archivo



tuberias y filtros en linux (10)

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 guión BASH.

Ventaja: Usted tiene las definiciones de registro dentro de su script. Bueno para Git etc.

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 aún se envía a la pantalla y no se escribe en el archivo.

¿Hay una manera de redirigir toda la salida al archivo?


En Linux Mint, esta cadena de comandos se enrutó ejecutando el script y los errores a un solo archivo txt. bash -x ./setup.sh > setup.txt 2>&1 . El nombre del script era setup.sh y el destino de salida era setup.txt.


Esa parte está escrita en stderr, usa 2> para redirigirla. 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 la sintaxis correcta


Mando:

foo >> output.txt 2>&1

se agrega al archivo output.txt , sin reemplazar el contenido.


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.


Podría ser el error estándar. Puedes redirigirlo:

... > out.txt 2>&1


Puede usar el comando exec para redireccionar toda la salida stdout / stderr de cualquier comando más adelante.

Ejemplo de script:

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


Todos los sistemas operativos POSIX tienen 3 flujos : stdin, stdout y stderr. stdin es la entrada, que puede aceptar stdout o stderr. stdout es la salida primaria, que se redirige con > , >> o | . stderr es la salida de error, que se maneja por separado para que las excepciones no se pasen a un comando o se escriban en un archivo que pueda fallar; Normalmente, esto se envía a un registro de algún tipo, o se descarga directamente, incluso cuando se redirige la salida estándar. Para redirigir 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 quieres silenciar el error, haz:

*command* 2> /dev/null


Use >> para añadir:

command >> file


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

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

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

Si no especifica un número, se asume la secuencia 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 tira. Se puede utilizar para suprimir cualquier salida.