bzcat - クラウドでオンライン

これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド bzcat です。

プログラム:

NAME


bzip2、bunzip2-ブロックソートファイルコンプレッサー、v1.0.6
bzcat-ファイルをstdoutに解凍します
bzip2recover-破損したbzip2ファイルからデータを回復します

SYNOPSIS


bzip2 [ -cdfkqstvzVL123456789 ] [ ファイル名 ... ]
bzip2 [ -h |-ヘルプ ]
bunzip2 [ -fkvsVL ] [ ファイル名 ... ]
bunzip2 [ -h |-ヘルプ ]
bzcat [ -s ] [ ファイル名 ... ]
bzcat [ -h |-ヘルプ ]
bzip2回復 ファイル名

DESCRIPTION


bzip2 Burrows-Wheelerブロックソートテキスト圧縮アルゴリズムを使用してファイルを圧縮します。
とハフマン符号化。 圧縮は一般に、によって達成される圧縮よりもかなり優れています
より従来型のLZ77 / LZ78ベースのコンプレッサーであり、PPMの性能に近づいています
統計コンプレッサーのファミリー。

コマンドラインオプションは、意図的に非常によく似ています。 GNU gzip、 しかし、彼らは
同一ではありません。

bzip2 ファイル名のリストがコマンドラインフラグに付随することを期待します。 各ファイルは
「original_name.bz2」という名前の圧縮バージョンに置き換えられました。 各
圧縮ファイルには、同じ変更日、アクセス許可、および可能な場合は所有権があります
対応するオリジナルとして、これらのプロパティをで正しく復元できるようにします
減圧時間。 ファイル名の処理は、メカニズムがないという意味でナイーブです
元のファイル名、権限、所有権、または日付をファイルシステムに保存するため
これらの概念が欠けているか、MS-DOSなどの深刻なファイル名の長さの制限があります。

bzip2 および bunzip2 デフォルトでは、既存のファイルは上書きされません。 あなたがこれをしたい場合
発生した場合は、-fフラグを指定します。

ファイル名が指定されていない場合は、 bzip2 標準入力から標準出力に圧縮します。
この場合、 bzip2 圧縮された出力を端末に書き込むことを拒否します。
完全に理解できないため、無意味です。

bunzip2 (または bzip2 -NS) 指定されたすべてのファイルを解凍します。 によって作成されなかったファイル
bzip2 が検出されて無視され、警告が発行されます。 bzip2 推測しようとします
次のように、圧縮ファイルのファイル名から解凍されたファイルのファイル名。

filename.bz2はfilenameになります
filename.bzはfilenameになります
filename.tbz2はfilename.tarになります
filename.tbzはfilename.tarになります
anyothernameはanyothername.outになります

ファイルが認識された末尾のいずれかで終了しない場合は、 .bz2、 .bz、 .tbz2 or .tbz、 bzip2
元のファイルの名前を推測できないと文句を言い、元の名前を使用します
  。アウト 添付。

圧縮と同様に、ファイル名を指定しないと、標準入力から
標準出力。

bunzip2 XNUMXつ以上の連結であるファイルを正しく解凍します
圧縮ファイル。 結果は、対応する非圧縮の連結です。
ファイル。 連結された圧縮ファイルの整合性テスト(-t)もサポートされています。

-cフラグを指定して、ファイルを標準出力に圧縮または解凍することもできます。
このように、複数のファイルを圧縮および解凍できます。 結果の出力は次のとおりです。
stdoutに順番に供給されます。 この方法で複数のファイルを圧縮すると、
複数の圧縮ファイル表現を含むストリーム。 そのようなストリームは
によってのみ正しく解凍された bzip2 バージョン0.9.0以降。 以前のバージョンの bzip2
ストリームの最初のファイルを解凍した後、停止します。

bzcat (または bzip2 -dc) 指定されたすべてのファイルを標準出力に解凍します。

bzip2 環境変数から引数を読み取ります bzip2 および BZIP、 この順番で、
コマンドラインから引数が読み取られる前にそれらを処理します。 これは
デフォルトの引数を提供する便利な方法。

圧縮ファイルが
オリジナル。 約XNUMXバイト未満のファイルは、
圧縮メカニズムには、50バイトの領域で一定のオーバーヘッドがあります。 ランダムデータ
(ほとんどのファイルコンプレッサーの出力を含む)は、バイトあたり約8.05ビットでコード化されています。
約0.5%の膨張を与えます。

あなたの保護のためのセルフチェックとして、 bzip2 32ビットCRCを使用して、
解凍されたバージョンのファイルは、元のファイルと同じです。 これは
圧縮されたデータの破損、および検出されないバグに対する bzip2 (うまくいけば非常に
ありそうもない)。 データ破損が検出されなくなる可能性はごくわずかで、約XNUMXつです。
処理されるファイルごとにXNUMX億のチャンス。 ただし、チェックが行われることに注意してください
解凍時に、何かが間違っていることだけを伝えることができます。 それはあなたを助けることはできません
元の非圧縮データを回復します。 あなたが使用することができます bzip2回復 データを回復しようとする
破損したファイルから。

戻り値:通常の終了の場合は0、環境問題の場合は1(ファイルが見つからない、無効
フラグ、I / Oエラー、&c)、2は破損した圧縮ファイルを示し、3は内部
原因となった整合性エラー(バグなど) bzip2 パニックに。

OPTIONS


-c --stdout
標準出力に圧縮または解凍します。

-d -解凍
強制減圧。 bzip2、 bunzip2 および bzcat 本当に同じプログラムであり、
どの名前が使用されているかに基づいて、実行するアクションに関する決定が行われます。
このフラグはそのメカニズムをオーバーライドし、強制します bzip2 解凍します。

-z -圧縮
-d:の補集合は、呼び出し名に関係なく、圧縮を強制します。

-t - テスト
指定されたファイルの整合性を確認しますが、解凍しないでください。 これは本当に
試行的な解凍を実行し、結果を破棄します。

-f - 力
出力ファイルを強制的に上書きします。 通常は、 bzip2 既存のものを上書きしません
出力ファイル。 また力 bzip2 ファイルへのハードリンクを解除します。
しません。

bzip2は通常、正しい魔法を持たないファイルの解凍を拒否します
ヘッダーバイト。 ただし、強制(-f)すると、そのようなファイルは変更されずに渡されます。
これがGNUgzipの動作です。

-k - 保つ
圧縮または解凍中は、入力ファイルを保持します(削除しないでください)。

-s - 小さな
圧縮、解凍、およびテストのために、メモリ使用量を削減します。 ファイルは
2.5バイトのみを必要とする修正されたアルゴリズムを使用して解凍およびテスト
ブロックバイトあたり。 これは、任意のファイルを2300kのメモリで解凍できることを意味します。
通常の速度の約半分ですが。

圧縮中に、-sは200 kのブロックサイズを選択します。これにより、メモリの使用が次のように制限されます。
圧縮率を犠牲にして、ほぼ同じ数値です。 要するに、
マシンのメモリが不足している(8メガバイト以下)場合は、すべてに-sを使用します。 見る
以下のメモリ管理。

-q - 静かな
必須ではない警告メッセージを抑制します。 I / Oエラーおよび
その他の重大なイベントは抑制されません。

-v -詳細
詳細モード-処理された各ファイルの圧縮率を表示します。 さらに-v
冗長性レベルを上げて、主に次のような多くの情報を吐き出します。
診断目的の関心。

-h - 助けて
ヘルプメッセージを印刷して終了します。

-L - ライセンス -V - バージョン
ソフトウェアバージョン、ライセンス契約条件を表示します。

-1 (または - 速い) 〜へ -9 (または - 一番)
圧縮するときは、ブロックサイズを100 k、200 k ... 900kに設定します。 次の場合は効果がありません
解凍します。 以下のメモリ管理を参照してください。 --fastおよび--bestエイリアスは
主にGNUgzip互換性のため。 特に、-fastは物事を作りません
大幅に高速化。 そして--bestは単にデフォルトの振る舞いを選択するだけです。

-- ダッシュで始まっている場合でも、後続のすべての引数をファイル名として扱います。
これは、ダッシュで始まる名前のファイルを処理できるようにするためです。次に例を示します。
bzip2 --- myfilename。

-繰り返し-速い -繰り返し-最高
これらのフラグは、バージョン0.9.5以降では冗長です。 彼らはいくつかの粗いを提供しました
以前のバージョンでの並べ替えアルゴリズムの動作の制御
時々役に立つ。 0.9.5以降では、これらをレンダリングするアルゴリズムが改善されています
関係のないフラグ。

MEMORY 公演の


bzip2 大きなファイルをブロックに圧縮します。 ブロックサイズは両方の圧縮率に影響します
達成され、圧縮と解凍に必要なメモリの量。 フラグ-1
〜-9は、ブロックサイズを100,000バイト〜900,000バイト(デフォルト)に指定します。
それぞれ。 解凍時に、圧縮に使用されるブロックサイズが
圧縮ファイルのヘッダー、および bunzip2 次に、自分自身に十分なメモリを割り当てます
ファイルを解凍します。 ブロックサイズは圧縮ファイルに保存されるため、次のようになります。
フラグ-1から-9は無関係であるため、解凍中は無視されます。

バイト単位の圧縮および解凍の要件は、次のように見積もることができます。

圧縮:400 k +(8 xブロックサイズ)

解凍:100 k +(4 xブロックサイズ)、または
100 k +(2.5 xブロックサイズ)

ブロックサイズが大きくなると、限界収穫逓減が急速に減少します。 ほとんどの圧縮
ブロックサイズの最初のXNUMXまたはXNUMXkに由来します。これは、覚えておく価値のある事実です。
使用している場合 bzip2 小さなマシンで。 また、
解凍メモリ要件は、ブロックサイズの選択によって圧縮時に設定されます。

デフォルトの900kブロックサイズで圧縮されたファイルの場合、 bunzip2 約3700が必要になります
解凍するキロバイト。 4メガバイトのマシン上のファイルの解凍をサポートするには、
bunzip2 この約半分のメモリを使用して解凍するオプションがあります。
2300キロバイト。 解凍速度も半分になるため、このオプションは次の場合にのみ使用してください。
必要。 関連するフラグは-sです。

一般に、メモリの制約で許容される最大のブロックサイズを使用してみてください。
達成される圧縮を最大化します。 圧縮と解凍の速度は事実上
ブロックサイズの影響を受けません。

もうXNUMXつの重要な点は、単一のブロックに収まるファイルに当てはまります。つまり、ほとんどの場合
大きなブロックサイズを使用して遭遇するファイル。 触れられた実際のメモリの量は
ファイルはブロックよりも小さいため、ファイルのサイズに比例します。 にとって
たとえば、フラグ-20,000を使用して9バイトの長さのファイルを圧縮すると、コンプレッサーが発生します。
約7600kのメモリを割り当てますが、タッチするのは400 k + 20000 * 8 = 560kバイトのみです。
同様に、デコンプレッサは3700 kを割り当てますが、タッチは100 k + 20000 * 4 = 180のみです。
キロバイト。

これは、さまざまなブロックサイズの最大メモリ使用量をまとめた表です。 また
記録されているのは、カルガリーテキスト圧縮コーパスの14ファイルの合計圧縮サイズです。
合計3,141,622バイト。 この列は、圧縮がどのように変化するかについての感触を与えます
ブロックサイズ。 これらの数字は、より大きなブロックサイズの利点を過小評価する傾向があります
コーパスは小さいファイルによって支配されているため、大きいファイル。

圧縮解凍圧縮解除コーパス
フラグ使用法-s使用量サイズ

-1 1200k 500k 350k 914704
-2 2000k 900k 600k 877703
-3 2800k 1300k 850k 860338
-4 3600k 1700k 1100k 846899
-5 4400k 2100k 1350k 845160
-6 5200k 2500k 1600k 838626
-7 6100k 2900k 1850k 834096
-8 6800k 3300k 2100k 828642
-9 7600k 3700k 2350k 828642

回復 DATA FROM 損傷した ファイル


bzip2 ファイルをブロック単位で圧縮します。通常は900キロバイトの長さです。 各ブロックが処理されます
独立して。 メディアまたは送信エラーが原因でマルチブロック.bz2ファイルが
破損している場合は、ファイル内の破損していないブロックからデータを回復できる可能性があります。

各ブロックの圧縮表現は、48ビットパターンで区切られます。
合理的な確実性でブロック境界を見つけることが可能です。 各ブロックも
独自の32ビットCRCを搭載しているため、損傷したブロックと損傷していないブロックを区別できます。

bzip2回復 は、.bz2ファイル内のブロックを検索することを目的とした単純なプログラムです。
各ブロックを独自の.bz2ファイルに書き込みます。 その後、使用することができます bzip2 -tをテストするには
結果のファイルの整合性を確保し、損傷していないファイルを解凍します。

bzip2回復 破損したファイルの名前である単一の引数を取り、次の数を書き込みます
抽出されたブロックを含むファイル「rec00001file.bz2」、「rec00002file.bz2」など。
出力ファイル名は、後続の処理でワイルドカードを使用するように設計されています-
たとえば、「bzip2 -dc rec * file.bz2> recovered_data」-内のファイルを処理します
正しい順序。

bzip2回復 大きな.bz2ファイルを処理するのに最も役立つはずです。
多くのブロック。 破損したシングルブロックファイルで使用することは明らかに無駄です。
破損したブロックは回復できません。 潜在的なデータ損失を最小限に抑えたい場合
メディアまたは伝送エラーを介して、より小さなブロックで圧縮することを検討するかもしれません
サイズ。

パフォーマンスとは 注意事項


圧縮の並べ替えフェーズでは、ファイル内の同様の文字列が収集されます。 のため
これは、「aabaabaabaab ...」のように、非常に長い繰り返し記号が含まれているファイルです。
(数百回繰り返される)通常よりもゆっくりと圧縮される場合があります。 バージョン0.9.5および
この点で、上記のバージョンは以前のバージョンよりもはるかに優れています。 最悪の比率-
ケースと平均ケースの圧縮時間は10:1の範囲です。 以前のバージョンの場合、
この数字は100:1のようなものでした。 -vvvvオプションを使用して、進行状況を監視できます。
必要に応じて、非常に詳細です。

減圧速度はこれらの現象の影響を受けません。

bzip2 通常、数メガバイトのメモリを割り当てて操作し、すべてを充電します
かなりランダムな方法でそれを超えます。 これは、圧縮と圧縮の両方のパフォーマンスを意味します
解凍は、主にマシンがキャッシュにサービスを提供できる速度によって決まります
ミス。 このため、ミス率を減らすためのコードへの小さな変更は
パフォーマンスが不釣り合いに大きく改善されることが観察されました。 私は想像する bzip2 意志
キャッシュが非常に大きいマシンで最高のパフォーマンスを発揮します。

警告


I / Oエラーメッセージは、それほど役に立ちません。 bzip2 I / Oを検出しようと努力します
エラーが発生し、正常に終了しますが、問題の詳細はかなり表示されることがあります
誤解を招く。

このマニュアルページは、バージョン1.0.6に関連しています。 bzip2。 これによって作成された圧縮データ
バージョンは、以前のパブリックリリースと完全に下位互換性があります。
バージョン0.1pl2、0.9.0、0.9.5、1.0.0、1.0.1、1.0.2以降、ただし以下のバージョン
例外:0.9.0以降では、複数の連結された圧縮を正しく解凍できます
ファイル。 0.1pl2はこれを行うことができません。 の最初のファイルだけを解凍した後、停止します
ストリーム。

bzip2回復 1.0.2より前のバージョンでは、32ビット整数を使用してビット位置を表していました。
圧縮ファイルであるため、512メガバイトを超える長さの圧縮ファイルを処理できませんでした。
バージョン1.0.2以降は、それらをサポートする一部のプラットフォームで64ビットintを使用します(GNU
サポートされているターゲット、およびWindows)。 bzip2recoverがで構築されたかどうかを確認するには
このような制限がある場合は、引数なしで実行してください。 いずれにせよ、あなたは自分自身を構築することができます
MaybeUInt64を符号なし64ビットに設定して再コンパイルできる場合は無制限バージョン
整数。

onworks.net サービスを使用してオンラインで bzcat を使用する



最新のLinuxおよびWindowsオンラインプログラム