web-dev-qa-db-ja.com

.txzと.tarで圧縮されたファイルを1つのコマンドで解凍する

* .txzで圧縮されたファイルがあります。解凍後、*。tarファイルを受け取りました。 1つのコマンドで2回アンパックする方法はありますか?つまり、1つのコマンドでファイル(* .tar).txzを解凍しますか?

知っているために私はこのようにしています:

xz -d file.txz
tar xvf file.tar

でももっといい方法があるのか​​な。

13
xz -d < file.tar.xz | tar xvf -

これは、他の圧縮アーカイブと同じです。 neverは、元のファイルの非圧縮コピーを作成する必要があります。

GNU tarの最近のバージョンのような一部のtar実装には、xzを自分で呼び出す組み込みオプションがあります。

GNU tarまたはbsdtar

tar Jxvf file.tar.xz

ただし、-Jxzファイルを自動的に検出する可能性があるため、次のようにします。

tar xvf file.tar.xz

十分であろう。

GNUまたはBSD tarが古すぎて特にxzをサポートできない場合、--use-compress-programオプション:

tar --use-compress-program=xz -xvf file.tar.gz

tarが圧縮ユーティリティを呼び出す利点の1つは、終了ステータスでの失敗を報告できることです。

注:tar.xzアーカイブはpixzで作成されています。pixzにはtarインデックスが追加されている可能性があります。これにより、アーカイブ全体を解凍することなくファイルを個別に抽出できます。

pixz -x path/to/file/in/archive < file.tar.xz | tar xvf -
18

これは行くべき道ですtar Jxvf file.txz

6
UVV

解凍はおそらく正しい用語ではありません。 解凍xzで、ntartarでできます。

GNU tarman tar、GNU Debianのデフォルトはtarです))のマニュアルページでは、次のように指定できます。

-I, --use-compress-program PROG
      filter through PROG (must accept -d)

xz-dオプションをサポートしているので、次のものを使用できます。

tar --use-compress-program xz xvf file.txz 

Manページからそれほど明確ではないのは、-xzおよび-J--use-compress-program xzまたは-I xzの省略形であることです。

そして、マニュアルページでまったく指定されていないのは、あなたがただ行うことができるということです

tar xvf file.txz 

GNU tarであり、tarファイルはxzで圧縮されていると認識されます。

4
Anthon