回答:
の-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
、ダッシュがなくても最後を付けるのがおそらく最善です。
tar
macOSではサポートしているようです-J
が、その機能はmanページに記載されていません。ここで調べなければなりませんでした。彼らは--options
... のセクションでXZについて言及していますが
スイッチ-J
は新しいシステムでのみ機能します。ユニバーサルコマンドは次のとおりです。
.tar.xzアーカイブを作成するには
tar cf - directory/ | xz -z - > directory.tar.xz
説明
tar cf - directory
directory /を読み取り、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
、またはtar
MacOSで使用している場合は、おそらく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
手動でxz
zipに設定しますが、特に指示がない限り、デフォルトでzipに設定されます。
Rafael van Hornをエコーするには、解凍して解凍します(下記の注を参照)。
xz -dc baz.tar.xz | tar x
注:ラファエルの回答とは異なり、xz -dc
ではなくを使用してくださいcatxz
。スクリプトでこれを使用している場合は、ドキュメントでこれをお勧めします。同様に、-d
または--decompress
代わりに使用する習慣をつけるのが最善unxz
です。ただし、必要な場合は、コマンドラインからこれらのコマンドを使用することで問題ありません。
tar -cJf
MacOSで構文を使用しない特別な理由はありますか?私が今それをやっていて、それが働いているようだったので、ちょうど好奇心が強い。
これを試して: 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
ファイルをアーカイブに追加されている番組冗長にします)。