Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: 4v1dy4 en 1 Enero 2023, 18:16 pm



Título: [bash] [Redireccion de descriptores de archivo] ¿Por que una linea funciona y la otra no?
Publicado por: 4v1dy4 en 1 Enero 2023, 18:16 pm
Feliz año nuevo,

Tengo una duda...

Si abro dos terminales, y en una ejecuto:

(cliente)
Código
  1. nc localhost 80 1>&0

y en la otra:

(servidor)
Código
  1. nc -lvp 80

y del lado del servidor escribo:

Código
  1. hola
  2.  

Del lado del cliente, nc no redirige stdout a stdin, y por lo tanto no veo de vuelta "hola" en la terminal del lado del servidor.

Sin embargo, si utilizo archivos para redirigir el i/o:

(cliente)
Código
  1. touch temp && tail -f temp | nc localhost 80 > temp && rm temp

(servidor)
Código
  1. nc -lvp 80

entonces, si envias "hola" desde el servidor, te lo devuelve como un espejo:

Código
  1. hola
  2. hola
  3.  

¿Por que el primer metodo no funciona y el segundo si?

Gracias...