web-dev-qa-db-ja.com

7-Zipコマンドラインツールを使用して.tar.bz2を膨らませて抽出する方法

7-Zipコマンドラインツールを使用して解凍および抽出したい.tar.bz2ファイルがあります。

だから基本的に私は同等のものを探しています

tar -xjf foo.tar.bz2

7-Zipの場合、抽出にはオプション「x」しかありません。

7z x foo.tar.bz2

tar内のすべてのディレクトリをアンパックする代わりに、膨張したfoo.tarファイルを私に与えます。 7zに対応するオプションは何ですか?

7
Philipp

これを1つのコマンドで実行することはできませんが、 シェルパイプライン を使用して、次のように2つの7zコマンドを1つのコマンドラインにチェーンできます。

7z e -so .\Downloads\enron_mongo.tar.bz2 | 7z e -si -ttar
3
Justin Dearing

7Zipでは、コマンドを2回実行する必要があります。1回は解凍するため、もう1回は解凍するためです。 tarファイル形式は、エンドツーエンドでスタックしているすべてのものの単なる「ワッド」です。次に、tarファイル全体が、例のbzipで、さまざまな圧縮アルゴリズムを使用して圧縮されます。基本的に、結果のファイルには2つのレイヤーがあります。 bzipレイヤーを「抽出」すると、tarファイルが取得され、次にtarファイルを抽出すると、多数の個別のファイルが取得されます。

7Zipは複数のレイヤーを一度に処理しませんが、両方のレイヤーを処理できます。

7z x foo.tar.bz2
7z x foo.tar

実際、標準のUNIXツールは同じように機能します。

bunzip2 foo.tar.bz2
tar xf foo.tar

ただし、unix tarコマンドには、tar部分を処理する前/後に別のプログラムを使用して2次圧縮および解凍ステップを呼び出す便利な機能があります。基本的に-j引数呼び出しbzip2/bunzip2、2番目のステップが表示されないだけです。同様に-zgzip/gunzipなどを呼び出します。

3
Caleb

標準出力とパイプを使用した7zとtarの組み合わせの短いバージョンはどうですか?

# 7z x -so my-compressed-tarball.tar.bz2| tar xf -
2
slashdot
7z x -so foo.tar.bz2 | 7z x -si -ttar
1
gray1mg