tar.gzを抽出する最速の方法


42

とにかくtar.gzファイルをより速く抽出する方法はありますtar -zxvf filenamehereか?

大きなファイルがあり、操作を最適化しようとしています。


2
$ tar -zxvfメソッドがIOまたはCPUにバインドされていることを発見していますか?
EEAA

1
CPUを信じていますが、どうすれば確認できますか?
ジャスティン

5
直接関係はありませんが、2004 / tar v1.1.5 gnu.org/software/tar/#TOCreleasesから「z」は不要です:)
JamesHannah

回答:


57

pigzは、gzipの並列バージョンです。解凍には単一のスレッドのみを使用しますが、読み取り、書き込み、およびチェック計算のために3つの追加スレッドを開始します。結果は異なる場合がありますが、一部のデータセットの圧縮解除で大幅な改善が見られました。pigzをインストールすると、次のコマンドでtarファイルを抽出できます。

pigz -dc target.tar.gz | tar xf-


11
+1。FWIW、それをとして書くこともできますtar -xvf --use-compress-program=pigz filenamehere。(に-z相当し--use-compress-program=gzipます。)または、gzipへのシンボリックリンクを作成しpigz、を使用し続けることもできます-zxvf
-ruakh

2
@ruakh、-xf後に置く--use-compress-program=pigz必要があったか、エラーが発生しました。何らかの理由で、使用するよりも速くはありませんgzipでした。
ジョンデリー

bzip2があるpbzip2p平行の場合)。tar --use-compress-program=pbzip2 -xvf file.tar.bz2
alfC

pvコマンドを使用して進行状況を表示する方法、または--use-compress-program=pigzフラグを使用する方法はありますか?圧縮中に行うことができますがgnutar --use-compress-program="pigz | pv" -cf target.tar.gz YourData、untar / uncompression中にこれを行う方法はわかりません。
ステファンLasiewski

13

tarボールに多数の小さなファイルが多数ある場合は、「v」パラメーターをキャンセルして、もう一度試してください!


3
-v paramは使用しません。なぜ人々がコンソールでそれほど多くのノイズを必要とするのか分かりません。
アイマンタス

9
@Eimantas多くのマルチギガバイトファイルを含む何かを展開するとき、進行状況を示す必要があります。:)
マイケルハンプトン

@TimHughes:それは本当に素晴らしいことです。別の回答として投稿してください!
-smci

マイケルハンプトン端子を介して、私は何をやっていることは、私は、ディレクトリの成長を見ることができるので、デュ-sディレクトリを監視することです...
ルチアーノ・アンドレスマティーニ

それは価値が使用している場合があります--checkpoint=NUMBER表示進行メッセージごとNUMBERthレコード)の代わりに-v
ステファンLasiewski

6

進捗状況を確認するには、次のようなものを使用しますpv。次に例を示します。

pigz -dc mysql-binary-backup.tar.gz | pv | tar xf -
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.