¿Cómo funciona realmente la redirección a pv?

¿Cómo funciona realmente la redirección a pv?

Estoy tratando de entender cómo funciona exactamente la redirección eneste comando

# tar -czf - ./Downloads/ | (pv -p --timer --rate --bytes > backup.tgz)

¿Cuál es la traducción al inglés?

¿Todos los datos de tarse redirigen como entrada pvy luego pvse redirigen a backup.tgz?

Entonces, ¿por qué se requiere el soporte pv?

Entonces ¿cómo tiene sentido esta redirección?

tar -czf - ./Documents/ | (pv -n > backup.tgz) 2>&1 | dialog --gauge "Progress" 10 70

¿ Después de pvcuál es el significado de 2>&1?

Respuesta1

Ver¿Cuáles son los operadores de control y redirección del shell?yOrden de redireccionespara fondo.

tar -czf - ./Downloads/ | (pv -p --timer --rate --bytes > backup.tgz)

le dice al shell que se ejecute tar -czf - ./Downloads/con la salida estándar redirigida a (pv -p --timer --rate --bytes > backup.tgz).

(pv -p --timer --rate --bytes > backup.tgz)

le dice al shell que se ejecute pv -p --timer --rate --bytescon la entrada estándar conectada a la tubería desde tary la salida estándar redirigida a backup.tgz. El efecto general, dado que tarse le indica que cree un archivo comprimido y lo envíe a su salida estándar ( f -), es crear un archivo comprimido, canalizarlo pvy luego escribirlo pven backup.tgz. pvmuestra una barra de progreso, que se actualiza a medida que los datos fluyen a través de ella.

Los paréntesis no son obligatorios.

Su segundo comando cambia la segunda mitad de la primera tubería:

(pv -n > backup.tgz) 2>&1

escribe nuevamente en backup.tgz, pero también redirige el error estándar del subshell (introducido entre paréntesis) a la salida estándar y alimentaesoen dialogel cual produce su propia visualización de progreso.

Los paréntesis son necesarios aquí si las redirecciones están configuradas en el orden indicado en su comando: pv -n > backup.tgz 2>&1redirigiría tanto pvla salida estándar como el error estándar a backup.tgz, que no es lo que desea. El efecto deseado también se puede lograr redirigiendo primero el error estándar: pv -n 2>&1 > backup.tgz.

información relacionada