No entiendo muy bien cómo la computadora lee este comando.
cat file1 file2 1> file.txt 2>&1
Si entiendo, 2>&1 simplemente redirija el error estándar a la salida estándar.
Por esa lógica, el comando me dice lo siguiente:
-
concatenar archivos
file1yfile2. -
enviar
stdoutde esta operación afile.txt. -
enviar
stderrastdout. -
terminar?
No estoy seguro de lo que está haciendo la computadora. Según mi lógica, el comando debería ser
cat file1 file2 2>&1 > file.txt
pero esto no es correcto.
Respuesta aceptada:
Me resulta más fácil pensar en usar asignaciones.
>es como=&es como$
Empiezas con
1 = /dev/tty
2 = /dev/tty
luego su primer ejemplo, 1> file.txt 2>&1 , hace
1 = file.txt
2 = $1 # and currently $1 = file.txt
dejándote con
1 = file.txt
2 = file.txt
Si lo hiciste al revés, nuevamente comienzas con
1 = /dev/tty
2 = /dev/tty
luego 2>&1 > file.txt hace
2 = $1 # and currently $1 = /dev/tty
1 = file.txt
entonces el resultado final es
1 = file.txt
2 = /dev/tty
y solo has redirigido stdout , no stderr .