8

1つのbz2アーカイブに結合する必要があるいくつかの(27)巨大な(それぞれ数GBの)bz2アーカイブファイルがあります。それらを解凍してから、解凍したばかりのファイルから新しいアーカイブを作成することは私には選択肢ではありません。圧縮されているため、27個のファイルすべてが合計で約100 GBになり、圧縮解除すると約5〜6 TBになります(そうです、TERAbytes lol)。

これはある種のスクリプトで実行できますか、それともこれを(より簡単に)実行できる別の圧縮形式がありますか?

4

4 に答える 4

33

次のように、多くのbz2ファイルを単一のbz2ファイルに単純に連結できます。

$ cat file1.bz2 file2.bz2 file3.bz2 >resulting_file.bz2

bzip2のような他のユーティリティlbzip2は、期待どおりに結果のファイルを解凍することができます。

于 2011-11-01T17:13:44.427 に答える
4

数日間のCPUを使用する場合は、最新のUNIX(R)オペレーティングシステムの魔法のパイプ機能を使用した1つのソリューションを次に示します。

bzip2 -dc file*.bz2 | bzip2 >resulting_file.bz2

...実際には、lbzip2バージョン2.0を入手し、マルチコアでlbzip2を除いて同じことを行います。

lbzip2 -dc file*.bz2 | lbzip2 >resulting_file.bz2
于 2011-11-08T18:27:27.233 に答える
3

質問を裏返す必要があります-ファイルを解凍してから再圧縮しようとしないでください。すべての個別のファイルのtarアーカイブを作成するだけです-tarは個別のファイルのコンテナとして理想的です。

tar cf tarofbzfiles.tar *.bz2
于 2011-08-04T18:01:22.567 に答える
2

@lacosの回答は、組み込みのbzcat省略形を使用して短縮し、通常どおりbzip2 -dcパイプで戻すことができます。bzip2@lacosほど正確ではありませんが、少し滑らかです;)

bzcat file*.bz2 | bzip2 >resulting_file.bz2
于 2013-02-22T18:36:07.463 に答える