Cómo tar / untar la salida sobre la marcha


27

¿Cuál es la forma idiomática de hacer lo siguiente?

  • alquitrán a stdout
  • lea esta salida tar de stdout y extráigala en alguna otra carpeta.

Mi solucion es tar --to-stdout .. | tar -C somefolder -xvf -

Pero puede haber una forma más idiomática de hacerlo.

Respuestas:


34

La misma -f -opción también funciona para el tarring.

tar -cf - something | tar -C somefolder -xvf -

GNU tar usa stdio por defecto:

tar -c something | tar -C somefolder -xv

rsync también es popular.

rsync -av something/ somefolder/

9

Solo agrego otro caso de uso aquí. Tenía una estructura de directorio grande en un sistema casi sin espacio en disco y quería terminar con un archivo tar.gz de la estructura de directorio en otra máquina con mucho espacio.

tar -czf - big-dir | ssh user@host 'cat > /path/to/big-dir.tar.gz'

Esto ahorra en gastos generales de red y significa que no tiene que tar en el otro lado en caso de que desee utilizar rsync para la transferencia.


Netcat es perfecto para esto. (Gato de un host a otro host).
Hennes

3
@Hennes: con su falta de autenticación, verificación de integridad, cifrado de datos, así como tener que iniciarlo manualmente en ambos lados para cada transferencia individual (es decir, 2 veces el trabajo), suena un poco menos que perfecto
grawity

La mayoría de las veces lo comprimo antes de descargarlo en la red. Es probable que las fallas integretiy aparezcan como errores de descompresión (aunque nunca tuve ninguna cuando la usé). En cuanto a comenzar dos programas: Sí, cierto.
Hennes

3
Puede ser más trabajo, pero para enviar un archivo comprimido grande a través de un enlace durante una operación urgente entre máquinas en una red local segura o a través de una VPN, la conexión a través de nc será significativamente más rápida que SSH (a través de una red de 1 Gb, a menudo por un factor de 2). Envíe una suma md5 del archivo para la verificación de integridad.
Spooler
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.