¿Cómo funciona exactamente la canalización con 2>&1?

¿Cómo funciona exactamente la canalización con 2>&1?

Recién comencé a aprender UNIX, por lo que la pregunta puede parecer realmente nueva, pero agradecería la respuesta, ya que he estado tratando de resolverla por mi cuenta durante una hora con la ayuda de Google, sin embargo, sin éxito.

cat /etc/shadow 2>&1 | wc -l

¿Cuál sería el efecto de este comando? Mi suposicion es:

  1. El comando imprimeel recuento de líneasde “/etc/shadow”, si hay un error estándar, será redirigido a la salida estándar y se contarán las líneas de error.
  2. El comando imprimeLos archivosde “/etc/shadow”, si hay un error estándar, será redirigido a la salida estándar y se contarán las líneas del error.

Respuesta1

X>&Yes pararedirección de descriptores de archivos: esto significa que toda la salida a fd Xesde hechoentrar en Y. 2>&1lanza la salida de STDERR a STDOUT.


wc -lescribe el número de líneas de entrada en STDOUT.


Juntos, el comando cat /etc/shadow 2>&1 | wc -ldevuelve el número de líneas en /etc/shadow,así comoel número de líneas de error.

Si ustednoSi quieres contar esas líneas de error, solo usa cat /etc/shadow | wc -l.

Respuesta2

Esta no es una respuesta directa.

¿Qué te impide experimentar un poco?

Si hiciste experimentos, es posible que hayas respondido tu propia pregunta.

Ejecute varias combinaciones de comandos.

cat /etc/shadow
cat /etc/shadows

cat /etc/shadow  2>&1
cat /etc/shadows 2>&1

y luego canalice cada uno awc

cat /etc/shadow    |  wc

etcétera etcétera.

información relacionada