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