Pregunta La forma más rápida de extraer tar.gz


¿Hay alguna forma de extraer un archivo tar.gz más rápido que tar -zxvf filenamehere?

Tenemos archivos grandes, y tratando de optimizar la operación.


35
2018-05-18 03:55


origen


¿Estás encontrando que el $ tar -zxvf ¿Está el método IO o CPU enlazado? - EEAA
Creer CPU, ¿cómo puedo comprobar aunque? - Justin
No está directamente relacionado, pero no se ha requerido 'z' desde 2004 / tar v1.1.5 gnu.org/software/tar/#TOCreleases :) - JamesHannah


Respuestas:


pigz Es una versión paralela de gzip. Aunque solo usa un solo hilo para descompresión, inicia 3 hilos adicionales para leer, escribir y verificar cálculos. Sus resultados pueden variar, pero hemos visto una mejora significativa en la descompresión de algunos de nuestros conjuntos de datos. Una vez que instales pigz, el archivo tar se puede extraer con:

pigz -dc target.tar.gz | tar xf


48
2018-05-18 05:01



+1. FWIW, también puedes escribir eso como tar -xvf --use-compress-program=pigz filenamehere. (-z asciende a --use-compress-program=gzip.) Alternativamente, incluso puedes hacer gzip ser un enlace simbólico a pigz, y seguir usando -zxvf. - ruakh
@ruakh, tuve que poner -xf después --use-compress-program=pigz, o tengo un error. Por alguna razón, no era más rápido que usar gzip aunque. - jonderry
por bzip2 Ahi esta pbzip2 (p para paralelo). tar --use-compress-program=pbzip2 -xvf file.tar.bz2. - alfC
¿Hay alguna manera de usar el pv comando para mostrar el progreso, o un equivalente, mientras que también utiliza el --use-compress-program=pigz ¿bandera? Durante la compresión, puedo hacer gnutar --use-compress-program="pigz | pv" -cf target.tar.gz YourData, pero no estoy seguro de cómo hacer esto durante untar / uncomression. - Stefan Lasiewski


si hay muchos muchos archivos pequeños en la bola de alquitrán, cancele el parámetro "v", ¡inténtelo de nuevo!


11
2018-05-18 04:36



Nunca uso -v param. No sé por qué la gente necesita tanto ruido en la consola. - Eimantas
@Eimantas Cuando untar algo que contiene muchos archivos de varios gigabytes, deseará alguna indicación de progreso. :) - Michael Hampton♦
@TimHughes: es realmente genial saberlo, publícalo como una respuesta por separado. - smci
Michael Hampton: si tiene archivos de varios gigabytes pero mezclados con grandes listas de archivos pequeños tiene una buena razón para no usar -v, en mis pruebas locales hace que el tar sea muy lento, especialmente si tiene tar ejecutándose en un servidor remoto A través de la terminal, lo que hago es ver el directorio du -s para que pueda ver cómo crece el directorio ... - Luciano Andress Martini
Podría valer la pena usar --checkpoint=NUMBER (mostrar mensajes de progreso cada NUMBERth registro) en lugar de -v. - Stefan Lasiewski


Si quieres ver progreso usa algo como pv. Aquí hay un ejemplo:

pigz -dc mysql-binary-backup.tar.gz | pv | tar xf -

4
2017-11-29 20:19



eso es mucho mejor ... - Luciano Andress Martini