pigz é uma versão paralela do gzip. Embora ele use apenas um único thread para descompactação, ele inicia três threads adicionais para leitura, gravação e verificação de cálculo. Seus resultados podem variar, mas vimos uma melhoria significativa na descompactação de alguns de nossos conjuntos de dados. Depois de instalar o pigz, o arquivo tar pode ser extraído com:
+1. FWIW, você também pode escrever isso como tar -xvf --use-compress-program=pigz filenamehere. ( -zequivale a --use-compress-program=gzip.) Como alternativa, você pode até criar gzipum link simbólico pigze continuar usando -zxvf.
Ruakh
2
@ ruakh, eu tive que colocar -xfdepois --use-compress-program=pigz, ou eu tenho um erro. Por alguma razão, não foi mais rápido do que usar gzip.
jonderry
Pois bzip2existe pbzip2( ppara paralelo). tar --use-compress-program=pbzip2 -xvf file.tar.bz2.
alfC 22/09/2015
Existe uma maneira de usar o pvcomando para mostrar progresso, ou um equivalente, enquanto também usa a --use-compress-program=pigzbandeira? Durante a compactação, eu posso fazer gnutar --use-compress-program="pigz | pv" -cf target.tar.gz YourData, mas não sei como fazer isso durante a remoção / descompactação.
Stefan Lasiewski
13
se houver muitos arquivos pequenos na bola de tar, cancele o parâmetro 'v', tente novamente!
Eu nunca uso -v param. Não sei por que as pessoas precisam de tanto barulho no console.
Eimantas
9
@Eimantas Quando você descompacta algo que contém muitos arquivos de vários gigabytes, deseja alguma indicação de progresso. :)
Michael Hampton
@ TimHughes: é realmente bom saber, por favor poste como resposta separada!
SMCI
Michael Hampton, se você possui arquivos com vários gigabytes, mas misturado com grandes listas de arquivos pequenos, tem um bom motivo para não usar -v, nos meus testes locais, torna o tar muito lento, especialmente se você tiver o tar executando em um servidor remoto via terminal, o que eu faço é para assistir du -s diretório para que eu possa assistir o diretório crescendo ...
Luciano Andress Martini
Pode valer a pena usar --checkpoint=NUMBER( exibir mensagens de progresso a cada NUMBERth registro ) em vez de -v.
Stefan Lasiewski
6
Se você quiser ver o progresso, use algo parecido pv. Aqui está um exemplo:
pigz -dc mysql-binary-backup.tar.gz | pv | tar xf -
$ tar -zxvf
método está vinculado a IO ou CPU?Respostas:
pigz é uma versão paralela do gzip. Embora ele use apenas um único thread para descompactação, ele inicia três threads adicionais para leitura, gravação e verificação de cálculo. Seus resultados podem variar, mas vimos uma melhoria significativa na descompactação de alguns de nossos conjuntos de dados. Depois de instalar o pigz, o arquivo tar pode ser extraído com:
fonte
tar -xvf --use-compress-program=pigz filenamehere
. (-z
equivale a--use-compress-program=gzip
.) Como alternativa, você pode até criargzip
um link simbólicopigz
e continuar usando-zxvf
.-xf
depois--use-compress-program=pigz
, ou eu tenho um erro. Por alguma razão, não foi mais rápido do que usargzip
.bzip2
existepbzip2
(p
para paralelo).tar --use-compress-program=pbzip2 -xvf file.tar.bz2
.pv
comando para mostrar progresso, ou um equivalente, enquanto também usa a--use-compress-program=pigz
bandeira? Durante a compactação, eu posso fazergnutar --use-compress-program="pigz | pv" -cf target.tar.gz YourData
, mas não sei como fazer isso durante a remoção / descompactação.se houver muitos arquivos pequenos na bola de tar, cancele o parâmetro 'v', tente novamente!
fonte
--checkpoint=NUMBER
( exibir mensagens de progresso a cada NUMBERth registro ) em vez de-v
.Se você quiser ver o progresso, use algo parecido
pv
. Aqui está um exemplo:fonte