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
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番目のステップが表示されないだけです。同様に-z
はgzip
/gunzip
などを呼び出します。
標準出力とパイプを使用した7zとtarの組み合わせの短いバージョンはどうですか?
# 7z x -so my-compressed-tarball.tar.bz2| tar xf -
7z x -so foo.tar.bz2 | 7z x -si -ttar