¿Cómo recuerdas la sintaxis de la redirección 2>&1

¿Cómo recuerdas la sintaxis de la redirección 2>&1

¿Tienes un mnemotécnico o un sistema? Esto me ha molestado durante años, siempre tengo que buscarlo.

Respuesta1

Si es un programador de C, puede considerarlo &1como "la dirección de 1", por lo que 2>&1se lee "redirigir el descriptor de archivo n.° 2 al mismo lugar que el n.° 1".

Respuesta2

"Dos a y uno"("para" ser >) tiene más sentido lógico para mí que "Dos y para uno", que es con lo que normalmente lo confundo. Si consideras "y uno" como un solo sustantivo (un lugar), también tiene sentido gramatical en contexto, lo cual es más difícil de hacer con "Dos y para uno"; tendrías que considerar "para uno" como un solo sustantivo, y aún así no tendría sentido contextual.

Respuesta3

No es un mnemónico, pero lo leo de la siguiente manera:

0es estándar. 1es estándar. 2es estándar. >es dentro. <está fuera de. &es un descriptor de archivo (en algunos shells).

2>&1
2      >    &               1
stderr into file descriptor 1

redirect stderr into stdout

Podría cambiar si ha manipulado alguno de los descriptores de archivos antes de la redirección...

2>somefile 1>&2
2      >    somefile     1      >    &2
stderr into somefile and stdout into file descriptor 2

redirect stderr into somefile and stdout into somefile. 

Respuesta4

Recordé que siempre es 2 -> 1. Stderr a stdout.

La parte intermedia siempre es la difícil y siempre la arruinaba, hasta que recordé que primero viene el personaje agudo >, luego el personaje que no puedo escribir en la vida real &.

Así que nunca 2&>1, siempre2>&1

información relacionada