1つのbz2アーカイブに結合する必要があるいくつかの(27)巨大な(それぞれ数GBの)bz2アーカイブファイルがあります。それらを解凍してから、解凍したばかりのファイルから新しいアーカイブを作成することは私には選択肢ではありません。圧縮されているため、27個のファイルすべてが合計で約100 GBになり、圧縮解除すると約5〜6 TBになります(そうです、TERAbytes lol)。
これはある種のスクリプトで実行できますか、それともこれを(より簡単に)実行できる別の圧縮形式がありますか?
1つのbz2アーカイブに結合する必要があるいくつかの(27)巨大な(それぞれ数GBの)bz2アーカイブファイルがあります。それらを解凍してから、解凍したばかりのファイルから新しいアーカイブを作成することは私には選択肢ではありません。圧縮されているため、27個のファイルすべてが合計で約100 GBになり、圧縮解除すると約5〜6 TBになります(そうです、TERAbytes lol)。
これはある種のスクリプトで実行できますか、それともこれを(より簡単に)実行できる別の圧縮形式がありますか?
次のように、多くのbz2ファイルを単一のbz2ファイルに単純に連結できます。
$ cat file1.bz2 file2.bz2 file3.bz2 >resulting_file.bz2
bzip2
のような他のユーティリティlbzip2
は、期待どおりに結果のファイルを解凍することができます。
数日間のCPUを使用する場合は、最新のUNIX(R)オペレーティングシステムの魔法のパイプ機能を使用した1つのソリューションを次に示します。
bzip2 -dc file*.bz2 | bzip2 >resulting_file.bz2
...実際には、lbzip2バージョン2.0を入手し、マルチコアでlbzip2を除いて同じことを行います。
lbzip2 -dc file*.bz2 | lbzip2 >resulting_file.bz2
質問を裏返す必要があります-ファイルを解凍してから再圧縮しようとしないでください。すべての個別のファイルのtarアーカイブを作成するだけです-tarは個別のファイルのコンテナとして理想的です。
tar cf tarofbzfiles.tar *.bz2
@lacosの回答は、組み込みのbzcat
省略形を使用して短縮し、通常どおりbzip2 -dc
パイプで戻すことができます。bzip2
@lacosほど正確ではありませんが、少し滑らかです;)
bzcat file*.bz2 | bzip2 >resulting_file.bz2