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

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に対応するオプションは何ですか?

答え1

単一のコマンドではこれを行うことはできませんが、次のものを使用できます。シェルパイプライン次のように、2つの7zコマンドを1つのコマンドラインに接続します。

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

答え2

7zipでは、コマンドを2回実行する必要があります。一度は解凍し、一度は解凍する必要があります。 tarファイル形式は、最後から最後まで接続されているすべてのものの「塊」です。その後、tarファイル全体がさまざまな圧縮アルゴリズム(あなたの場合はbzip)を使用して圧縮されます。デフォルトでは、生成されたファイルには2つのレイヤーがあります。 bzip レイヤーを「抽出」すると tar ファイルが生成され、tar ファイルを抽出すると複数の個別ファイルが生成されます。

7zipは2つのレイヤーを処理できますが、同時に複数のレイヤーを処理することはできません。

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

実際、標準のUNIXツールは同じ方法で動作します。

bunzip2 foo.tar.bz2
tar xf foo.tar

ただし、Unixコマンドには、tartar部分を処理する前後に他のプログラムを使用して2次圧縮および解凍ステップを呼び出す便利な機能があります。デフォルトでは、-jパラメータはbzip2/を呼び出すため、2bunzip2番目のステップは表示されません。 / etcも-z呼び出されます。gzipgunzip

答え3

stdoutとパイプを使って7zとtarを組み合わせたより短いバージョンはどうですか?

# 7z x -so my-compressed-tarball.tar.bz2| tar xf -

答え4

7z x -so foo.tar.bz2 | 7z x -si -ttar

関連情報