Linux bzip2 コマンドの使用

Linux bzip2 コマンドの使用

1. コマンドの紹介

bzip2 は、ファイルの圧縮と解凍に使用されます。これは、Linux システムでファイルの圧縮と解凍によく使用されるコマンドです。Burrow-Wheeler ブロック ソート テキスト圧縮アルゴリズムとハフマン コーディングを使用して、ファイルを拡張子 .bz2 の bzip2 ファイルに圧縮します。圧縮率は一般に LZ77/LZ78 ベースの圧縮ソフトウェアよりもはるかに優れており、そのパフォーマンスは PPM ファミリの統計圧縮ソフトウェアに近いです。

bzip2 は、あまり使用されない大きなファイルを圧縮してディスク容量を節約できるだけでなく、tar コマンドと組み合わせてファイルをパッケージ化して圧縮することもできます。ファイル サイズを縮小すると、2 つの明らかな利点があります。1 つは、ストレージ スペースを削減できることです。もう 1 つは、ネットワーク経由でファイルを転送するときに、転送時間を短縮できることです。

2. コマンド形式

bzip2 [オプション] [ファイル...]

bzip2 のコマンドライン引数は、意図的に GNU gzip に近くなるように設計されていますが、同一ではありません。 bzip2 はコマンドラインからオプションとファイル名を読み取ります。 各ファイルは、「originalfilename.bz2」という名前の圧縮ファイルに置き換えられます。 圧縮された各ファイルは、元のファイルと同じ変更時刻、権限、および可能な場合は所有者を持つため、解凍時にこれらの特性が正しく復元されます。

デフォルトでは、bzip2 は既存のファイルを上書きしません。 既存のファイルを上書きする場合は、-f オプションを指定します。

3. オプションの説明

-c, --stdout
  データを圧縮または解凍して標準出力に出力します -d, --decompress
  強制減圧。 bzip2、bunzip2、bzcat は実際には同じプログラムであり、実行する操作はプログラム名によって決まります。 このオプションを指定すると、このメカニズムがオーバーライドされ、bzip2 が強制的に解凍されます -z、--compress
	-d オプション補足: どのプログラムが実行されても圧縮操作を強制する -t, --test
  指定されたファイルを解凍せずに整合性をチェックします。 実際には、データは結果を出力せずに実験的に解凍されます -f、-force
  出力ファイルを強制的に上書きします。通常、bzip2 は既存のファイルを上書きしません。このオプションは、bzip2 がデフォルトでは行わない、ファイル内のハードリンクの解除も強制します。
-k, --keep
  圧縮または解凍時に入力ファイルを保持する(削除しない)
-s、--小さい
  圧縮、解凍、チェック時のメモリ使用量を削減します。 圧縮とテストには修正されたアルゴリズムが使用され、データ ブロックあたり 2.5 バイトのみが必要となります。 つまり、通常の半分の速度ではありますが、2300K のメモリで任意のファイルを解凍できます。圧縮時に、-s は 200K のブロック長を選択し、メモリ使用量も 200K 程度に制限されますが、圧縮率は低くなります。 要約すると、マシンのメモリが少ない場合(8MB以下)は、すべての操作に-sオプションを使用します。-q、--quiet
  重要でない警告メッセージを抑制します。 I/Oエラーやその他の重大なイベントに関する情報は抑制されません -v, --verbose
  詳細モード - 処理された各ファイルの圧縮率を表示します。 コマンドラインで -v オプションを増やすと詳細レベルが上がり、bzip2 は主に診断目的で多くの情報を表示します。-L、--license、-V、--version
	ソフトウェアのバージョン、ライセンス条項、配布条件を表示します -1 (または --fast) から -9 (または --best)
  圧縮する場合は、ブロック長を 100 k、200 k、... 900 k に設定します。 減圧には影響しません --
  後続のすべてのコマンドライン引数は、マイナス記号 - で始まっていてもファイル名として扱います。 このオプションは、マイナス記号 - で始まるファイル名を処理するために使用できます。例: bzip2 -- -myfilename
--repetitive-fast、--repetitive-best
  これらのオプションはバージョン 0.9.5 以降では不要です。 以前のバージョンでは、これら 2 つのオプションにより、ソート アルゴリズムの動作を大まかに制御することができ、状況によっては便利でした。バージョン 0.9.5 以降では、これらのオプションに関係なく、改良されたアルゴリズムが使用されます。

4. 一般的な例

(1)元のファイルは圧縮されていません。

bzip2 /etc/passwd

圧縮後、/etc/passwd は /etc/passwd.bz2 になります。

(2)元のファイルの圧縮を維持する。

bzip2 -k /etc/passwd
# または bzip2 -c /etc/passwd > /etc/passwd.bz2

(3)圧縮中の命令実行過程を表示する。

bzip2 -v /etc/passwd
/etc/passwd: 2.256:1、3.546 ビット/バイト、55.67% 節約、1552 入力、688 出力。

(4)元のファイルを残さずに.bz2ファイルを解凍します。

bzip2 -d /etc/passwd.bz2

(5).bz2ファイルを解凍し、元のファイルを保存します。

bzip2 -dk /etc/passwd.bz2
# または bzip2 -dc /etc/passwd.bz2 > /etc/passwd

(6).bz2圧縮ファイルを実際に解凍せずに整合性をテストします。

bzip2 -tv /etc/passwd.bz2
/etc/passwd.bz2: 正常

上記は Linux bzip2 コマンドの使用に関する詳細な内容です。Linux bzip2 コマンドの詳細については、123WORDPRESS.COM の他の関連記事をご覧ください。

以下もご興味があるかもしれません:
  • Linux で USB デバイスの信号を監視するための Python の実装
  • Linux USBホストドライバの書き方の詳細説明
  • ARM LinuxはALSAドライバを使用し、USBオーディオデバイスを使用します
  • LinuxでUSBモバイルストレージを使用する方法
  • Linux環境でUSBストレージを使用する
  • 事例を通してLinux NFSの仕組みを詳細に分析
  • Linux NFSメカニズムの動作原理と例の分析
  • IntelliJ IDEA リモート デバッグ Linux Java プログラム、ログを見るだけでなく問題を見つけます (推奨)
  • Linux で libudev を使用して USB デバイスの VID と PID を取得する方法

<<:  JS は複数のタブを切り替えるカルーセルを実装します

>>:  MySQLループは数千万のデータを挿入する

推薦する

JavaScript を使用してタイムラインとアニメーション効果を実装するためのサンプル コード (フロントエンドのコンポーネント化)

目次コードのクリーニングJavaScript の「フレーム」 「フレーム」の実装方法1. 間隔を設定...

MySQLデスクトップツールSQLyogのリソースとアクティベーション方法は、白黒のコマンドラインに別れを告げます

では、早速リソースについて見ていきましょう。 123WORDPRESS.COM ダウンロードSQLy...

CSS3はマスク連打機能を実現する

最近Bステーションでスマートアンチブロッキング弾幕と呼ばれる弾幕エフェクトを見ました。これは伝説のマ...

MySQLデータベースのロック機構の分析

同時アクセスの場合、非反復読み取りやその他の読み取り現象が発生する可能性があります。高い同時実行性に...

Vueはフォーム検証機能を実装します

この記事では主に、NUXT の validate メソッドに基づいてフォーム検証を実装する方法につい...

Dockerはターミナルで中国語を入力できない問題を解決します

序文:ある日、DockerでMySQLサービスを構築したところ、MySQLのコマンドラインで中国語の...

オブジェクトのプロパティを反復処理する際の TypeScript の問題

目次1. 問題2. 解決策1. オブジェクトをanyとして宣言する2. オブジェクトのインターフェー...

Docker 入門インストールチュートリアル (初心者版)

ドクター紹介: Docker はコンテナ関連の技術です。簡単に言うと、さまざまなソフトウェアを実行で...

DockerにRabbitMQをインストールする詳細な手順

目次1. 鏡を見つける2. RabbitMQイメージをダウンロードする3. RabbitMQコンテナ...

MySQL における datetime と timestamp の違いと使い方

1. MySQL で現在の時刻を表現するにはどうすればよいでしょうか?実際、表現方法はいろいろありま...

MySQLクエリ速度を最適化する方法

前の章では、高性能な MySQL に不可欠な、最適化されたデータ型の選択方法とインデックスの効率的な...

mycat を使用して MySQL データベースの読み取りと書き込みの分離を実装する例

MyCATとはエンタープライズアプリケーション開発のための完全にオープンソースの大規模データベースク...

Bootstrap 3.0 学習ノートのページレイアウト

今回はレイアウトを中心に学習しますが、これは基本的なHTMLタグのほとんどにも存在するため、比較的簡...

Nginx転送マッチングルールの実装

1. 正規表現マッチング大文字と小文字を区別するマッチングの場合 ~ ~*は大文字と小文字を区別しな...

nginx を使用して静的リソース サーバーを構築する方法

Windows を例にとると、Linux も実際には同じです。静的リソースサーバーを構築するパソコン...