ウェブサイト検索

Linux の Pigz ツールを使用してファイルを高速に圧縮する方法


マーク・ アドラーによって書かれたピグズGZip並列実装の頭字語です。これは、ファイルを驚異的な速度で圧縮できる気の利いた圧縮ツールです。古き良き gzip ユーティリティを改良したもので、複数のコアとプロセッサを利用してデータを圧縮します。

このガイドでは、Pigz にさらに光を当て、このユーティリティを使用して Linux システムでファイルを圧縮する方法を説明します。

Linux システムへの Pigz のインストール

Pigz パッケージは、DebianCentOS などの主要なディストリビューションの公式リポジトリに含まれているため、Pigz のインストールは簡単です。 です。

次のように、それぞれのパッケージ マネージャーを使用して、さまざまなディストリビューションに 1 つのコマンドで Pigz をインストールできます。

sudo apt install pigz  [On Debian/Ubuntu]
sudo dnf install pigz  [On CentOS/RHEL/Fedora]
sudo pacman -S pigz    [On Arch/Manjaro Linux] 
OR
yay -S pigz

Pigz でファイルを圧縮する方法

単一のファイルを zip 形式に圧縮するには、次の構文を使用します。

pigz filename

このガイドでは、デモの目的でファイルubuntu-20.04-beta-desktop-amd64.isoを使用します。ファイルを圧縮するには、次のコマンドを実行します。

pigz ubuntu-20.04-beta-desktop-amd64.iso

ただし、お気づきかと思いますが、このコマンドは圧縮時に元のファイルを削除します。圧縮後に元のファイルを保持するには、次のように -k オプションを使用して実行します。

pigz -k ubuntu-20.04-beta-desktop-amd64.iso

出力から、圧縮後も元のファイルが保持されていることが明確にわかります。

Linuxで圧縮ファイルの内容を確認する

達成された圧縮率の統計を含む圧縮ファイルの内容を確認するには、pigz コマンドで -l オプションを使用します。

pigz -l ubuntu-20.04-beta-desktop-amd64.iso.gz

出力からは、zip ファイルの内容だけでなく、圧縮率 (この場合は1.9%) も確認できます。

さらに、1 から 9 までのさまざまな圧縮レベルを使用できます。次の圧縮レベルがサポートされています。

  • 6 – デフォルトの圧縮。
  • 1 – 最速ですが、圧縮は最も低くなります。
  • 9 – 最も遅いですが、最良の圧縮です。
  • 0 – 圧縮なし。

たとえば、最適な圧縮レベルでファイルを圧縮するには、次のコマンドを実行します。

pigz -9 ubuntu-20.04-beta-desktop-amd64.iso

Pigz を使用してディレクトリを圧縮する方法

Pigz 自体にはフォルダーを圧縮するオプションはなく、単一のファイルのみを圧縮します。回避策として、pigg を tar コマンドと組み合わせて使用して、ディレクトリを圧縮します。

ディレクトリを圧縮するには、次のように --use-compress-program 引数を使用します。

tar --use-compress-program="pigz -k " -cf dir1.tar.gz dir1

圧縮中にプロセッサの数を制限する方法

pigz ユーティリティ ツールはファイルの圧縮時に複数のコアとプロセッサを使用すると前述しました。 -p オプションを使用して、使用するコアの数を指定できます。

以下のこの例では、元の圧縮を保持しながら、4 個のプロセッサ (-p4) で最適な圧縮 (-9 で示されます) を使用しています。ファイル(-k)

pigz -9 -k -p4 ubuntu-20.04-beta-desktop-amd64.iso

Pigz を使用してファイルを解凍する方法

pigz を使用してファイルまたはディレクトリを解凍するには、-d オプションまたは unpigz コマンドを使用します。

圧縮 ISO ファイルを使用すると、コマンドは次のようになります。

pigz -d ubuntu-20.04-beta-desktop-amd64.iso
OR
unpigz dir1.tar.gz

Pigz と Gzip の比較

私たちはもう少し進んで、PigzGzip ツールと対戦させました。

結果は次のとおりです。

Gzip圧縮

time gzip ubuntu-20.04-beta-desktop-amd64.iso

豚の圧縮

time pigz ubuntu-20.04-beta-desktop-amd64.iso

Gzip解凍

time gzip -d ubuntu-20.04-beta-desktop-amd64.iso.gz

豚の解凍

time unpigz ubuntu-20.04-beta-desktop-amd64.iso.gz

比較すると、Pigz の圧縮と解凍にかかる時間がGzip よりもはるかに短いことがわかります。これは、Pigz コマンド ライン ツールが Gzip ツールよりもはるかに高速であることを意味します。

pigz コマンドの使用方法の詳細については、マニュアル ページを参照してください。

man pigz

さらに、以下のコマンドを実行して、pigz コマンドで使用できるすべてのオプションを表示します。

pigz --help

そして、それができました。 pigz コマンドライン ツールについて説明し、ファイルを圧縮および解凍する方法を説明しました。さらに進んで PigzGzip を比較したところ、圧縮と解凍の両方の速度の点で Pigz の方が優れていることがわかりました。ぜひ試してみて、どうだったか教えてください。