Bzip2とgzipは1つのコアのみを使用しますが、多くのコンピューターには複数のコアがあります。しかし、lbzip2、pbzip2、pigsなどのプログラムがあり、利用可能なすべてのコアを使用し、bzip2およびgzipとの互換性を保証します。
デフォルトでこれらのプログラムを使用する最良の方法は何tar cfa file.tar.bz2 directory
ですか?bzip2の代わりにlbzip2 / pbzip2 を使用しますか?もちろん、私は何も壊したくありません。
Bzip2とgzipは1つのコアのみを使用しますが、多くのコンピューターには複数のコアがあります。しかし、lbzip2、pbzip2、pigsなどのプログラムがあり、利用可能なすべてのコアを使用し、bzip2およびgzipとの互換性を保証します。
デフォルトでこれらのプログラムを使用する最良の方法は何tar cfa file.tar.bz2 directory
ですか?bzip2の代わりにlbzip2 / pbzip2 を使用しますか?もちろん、私は何も壊したくありません。
回答:
bzip2、bunzip2、bzcatをlbzip2に、gzip、gunzip、gzcat、zcatをpigzにシンボリックリンクできます。
sudo apt-get install lbzip2 pigz
cd /usr/local/bin
ln -s /usr/bin/lbzip2 bzip2
ln -s /usr/bin/lbzip2 bunzip2
ln -s /usr/bin/lbzip2 bzcat
ln -s /usr/bin/pigz gzip
ln -s /usr/bin/pigz gunzip
ln -s /usr/bin/pigz gzcat
ln -s /usr/bin/pigz zcat
/usr/share/doc/lbzip2/README.gzは/usr/share/doc/pbzip2/README.gzよりも「見栄えが良い」ので、pbzip2ではなくlbzip2を選択しました。また、tarマニュアルではlbzip2について説明しています。
編集:
Precise Pangolinに含まれているpigz-2.1.6は、不明なサフィックス(たとえば、initramfs-*。img)を持つファイルの解凍を拒否します。これは、Quantalに同梱されているpigz-2.2.4で修正されています。そのため、Quantal まで待つか、Quantal パッケージを手動でインストールするか、gunzip / gzcat / zcatをまだリンクしないでください。
sudo dpkg-divert --divert /bin/gunzip.orig --rename /bin/gunzip; sudo ln -s /usr/bin/pigz /bin/gunzip
、pigzはすべてのgzipフラグと100%互換性がない可能性がありますので注意してください。
シンボリックリンクのアイデアは本当に素晴らしいです。
別の有効な解決策はエイリアスすることtar
です:
alias tar='tar --use-compress-program=pbzip2'
またはそれぞれ
alias tar='tar --use-compress-program=pigz'
別の種類のデフォルトが作成されます。
シンボリックリンクの答えは本当に間違っています。システム全体でデフォルトのgzip(またはbzip2)をpigz(またはpbzip2)に置き換えます。並列実装は単一プロセスバージョンと非常に似ていますが、コマンドラインオプションの微妙な違いは、それらの違いに依存するコアシステムプロセスを破壊する可能性があります。
「--use-compress-program」オプションの方がはるかに良い選択です。2番目のオプション(エイリアスによく似ています)は、GNU tarでサポートされるTAR_OPTIONS環境変数を設定することです。
$ export TAR_OPTIONS = "-use-compress-program = pbzip2" $ tar czf myfile.tar.bz2 mysubdir /
魅力的なオプションの1つは、デフォルトでマルチスレッドを使用するようにtarを再コンパイルすることです。このstackoverflowの回答からコピー
ソースからtarをビルドする場合は、パラメーターを使用して再コンパイルできます
--with-gzip=pigz
--with-bzip2=lbzip2
--with-lzip=plzip
これらのオプションを使用してtarを再コンパイルした後、tarのヘルプの出力を確認できます。
$ tar --help | grep "lbzip2\|plzip\|pigz"
-j, --bzip2 filter the archive through lbzip2
--lzip filter the archive through plzip
-z, --gzip, --gunzip, --ungzip filter the archive through pigz