回答:
の-J圧縮オプションを使用しますxz。そして、忘れないでくださいman tar:)
tar cfJ <archive.tar.xz> <files>
2015-08-10を編集:
あなたがに引数を渡している場合はtar ダッシュで(例:tar -cfとは反対にtar cf)、そして-fオプションは、最後に来なければなりません、それはファイル名を指定しているので、(おかげ@ABBそのアウトを指し示すために!)。その場合、コマンドは次のようになります。
tar -cJf <archive.tar.xz> <files>
f、ダッシュがなくても最後を付けるのがおそらく最善です。
tarmacOSではサポートしているようです-Jが、その機能はmanページに記載されていません。ここで調べなければなりませんでした。彼らは--options... のセクションでXZについて言及していますが
スイッチ-Jは新しいシステムでのみ機能します。ユニバーサルコマンドは次のとおりです。
.tar.xzアーカイブを作成するには
tar cf - directory/ | xz -z - > directory.tar.xz
説明
tar cf - directorydirectory /を読み取り、TAR形式に変換し始めます。この操作の出力は、標準出力に生成されます。
| 標準出力を別のプログラムの入力にパイプします...
...たまたまxz -z -。XZは-z、標準入力(-)からアーカイブを圧縮()するように構成されています。
あなたはからの出力をリダイレクトxzするtar.xzファイル。
tar cf - directory/ | xz -z -T0 - > directory.tar.xz
-1 -T0または-0 -T0オプションとして使用できるサイズをあまり気にしない場合、通常は同等またはより速い時間でgzipよりも小さいファイル-6が得られますが、デフォルトはかなり遅いですgzipより。
あなたがパイプモードが好きなら、これは最もクリーンな解決策です:
tar c some-dir | xz > some-dir.tar.xz
fファイルを処理するためにオプションを配置-し、ファイルが標準入力であることを指定するために使用する必要はありません。の-zオプションはxzデフォルトであるため、指定する必要もありません。
それはで動作gzipし、bzip2あまりにも:
tar c some-dir | gzip > some-dir.tar.gz
または
tar c some-dir | bzip2 > some-dir.tar.bz2
解凍も非常に簡単です:
xzcat tarball.tar.xz | tar x
bzcat tarball.tar.bz2 | tar x
zcat tarball.tar.gz | tar x
tarアーカイブしかない場合は、次を使用できますcat。
cat archive.tar | tar x
ファイルのみをリストする必要がある場合は、 tar t。
の圧縮オプションを使用する場合xz、またはtarMacOSで使用している場合は、おそらくtar -cJf構文ます。
によるとman xz、これを行う方法は次のとおりです。
tar cf - baz | xz -4e > baz.tar.xz
Wojciech Adam Koszekの形式は好きだったが、情報は好きではなかったので、
c 指定したファイルの新しいアーカイブを作成します。 fディレクトリから読み取ります(-cf!=なので、2番目に置くのが最適です-fc)- 標準出力への出力| 出力を次のコマンドにパイプしますxz -4e圧縮オプションxzを指定して呼び出し-4eます。(に等しい-4 --extreme)> baz.tar.xz tarおよび圧縮されたファイルを baz.tar.xz ここ-4eで、独自の圧縮オプションを使用します。元のファイルを頻繁に使用-kして--keep、-9非常に重い圧縮を行います。-z手動でxzzipに設定しますが、特に指示がない限り、デフォルトでzipに設定されます。
Rafael van Hornをエコーするには、解凍して解凍します(下記の注を参照)。
xz -dc baz.tar.xz | tar x
注:ラファエルの回答とは異なり、xz -dcではなくを使用してくださいcatxz。スクリプトでこれを使用している場合は、ドキュメントでこれをお勧めします。同様に、-dまたは--decompress代わりに使用する習慣をつけるのが最善unxzです。ただし、必要な場合は、コマンドラインからこれらのコマンドを使用することで問題ありません。
tar -cJfMacOSで構文を使用しない特別な理由はありますか?私が今それをやっていて、それが働いているようだったので、ちょうど好奇心が強い。
これを試して: tar -cf file.tar file-to-compress ; xz -z file.tar
注意:
| コマンドを同時に実行するため、パイプは使用しないでください。コマンドを次々に使用;または&実行します。Jオプションが表示されませんが、これは機能します。RHEL6が必要だと思います。
tar -c file-to-compress | xz -z > file.tar.xz。
&も、コマンドが次々に起動されることはありません。代わりに、最初のプロセスをバックグラウンドプロセスとして起動します。
v(コマンドスイッチにtar -cJvfファイルをアーカイブに追加されている番組冗長にします)。