複数のファイルを.xzアーカイブに圧縮するにはどうすればよいですか?


回答:


10

けれどもとしてZacharee1により詳細に説明し、heemaylであなたがしたいと思うものを、通常は、別の方法は、パイプににデータをtar形式でコマンドを実行します。tar cJf archive files...xz

tar c files... | xz > archive.tar.xz

Ubuntu tarJオプションをサポートしているため、この代替方法はオプションをに渡したい場合に特に便利ですxz

この例では、高レベルの圧縮(-9to xz)と詳細出力(vto tar-vto xz)を使用して、いくつかのTIFFファイルをtarおよびxzipしています。

ek@Io:~/Pictures$ tar vc *.tif{,f} | xz -9v > pics.tar.xz
page001.tif
page002.tif
page003.tif
page004.tif
page9087.tif
page3la.tiff
quux0000.tiff
  100 %       207.3 KiB / 290.0 KiB = 0.715

もちろん、これは2つの明示的に異なるステップで行うこともできます。

ek@Io:~/Pictures$ tar vcf pics.tar *.tif{,f}
page001.tif
page002.tif
page003.tif
page004.tif
page9087.tif
page3la.tiff
quux0000.tiff
ek@Io:~/Pictures$ xz -9v pics.tar
pics.tar (1/1)
  100 %       207.3 KiB / 290.0 KiB = 0.715

これらの2つの方法は実際には動作が同じではありませんが.tar.xz、最終的に生成されるファイルは同じであるはずです(私がテストしたときも同じでした)。

  • 最初に、出力tarISは、パイプ|へ)を入力しますxzxztarほぼ即座にデータを受信し、中間の非圧縮tarファイルは作成されません。つまり、最初の方法は、に渡される追加の引数を除いtar cJf archive files...、本質的にと同じxzです。
  • 2番目では、非圧縮のtarアーカイブが最初のコマンドで作成され、次にxz2番目のコマンドで圧縮されます。(/でxz呼び出されない限り、完了時に元のファイルが自動的に削除されます。)-k--keep

さらに読書については、ラファエル・ファン・ホーンによってこのポストをし、tarそしてxzmanページ。


1
+は..より高い(または変化する)圧縮比が望まれる良好なものである1..this
heemayl

2
2015年こんにちは!あなたが使用して圧縮レベルを変える達成することができます別の方法は、tar -J環境変数を指定することですXZ_OPT:のような呼び出し何かを作るXZ_OPT="-9v" tar -Jcf out.tar.xz [files]
WUG

2
@Wugそれは素晴らしいアイデアです。それはそれ自身の別々の答えを正当化するように私には思えます。投稿してもよろしいですか?
Eliah Kagan 2017

13

使用tarして-Jオプション:

tar -cvJf images.tar.xz /directory/containing/images/*

tar 複数のファイルを1つ(アーカイブ)に結合するために使用され、XZ圧縮アルゴリズムを使用してアーカイブを圧縮する必要があります。

からman tar

-c, --create
       create a new archive
-v, --verbose
       verbosely list files processed
-J, --xz

-f, --file ARCHIVE
       use archive file or device ARCHIVE

またimages.tar.xz、現在のディレクトリに作成されることに注意してください/full/path/to/images.tar.xz。他の場所に保存したい場合は、を使用してください。


いくつかの巨大なPSDをxzingするプロセスを開始し、正直に言うと、アーカイブは巨大な圧縮を提供しています!400 MB +は現在200MB
遠方のグラフィック

1
great..althoughはxz中で最も遅くxzgzipbzip2... others..the遅あなたはより多くの圧縮をしたい場合に対処するための価値があるよりも、その高い圧縮比のために
heemayl

私のpsdsの合計は、たとえば、合計600〜900 MBのxDです
遠隔グラフィックス

あなたは行ってもいいです...
heemayl '16

ちょっとエラー._。
遠方のグラフィック

3

次のコマンドを使用しますtar cJf <archive.tar.xz> <files>。ファイルパスはスペースで区切ります。


これが必要です:-cfJ
AB

1
@AB:前に必要はありません-..from man tarA function letter need not be prefixed with ``-''..so tar cJfは問題ありません。
heemayl 2015

@heemaylしかし、動作していないようです。「-」なしで試してみましたが、tarが完成していません。
AB

@heemaylそれは私が思ったことです。
TheWanderer 2015

1
注あなたが最初の答えに固執すべきであることをtar cJf私の答えは既にカバーされて、それがOPにこれを行うための別の方法を与えるtar --cvJf最初の..で
heemayl
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.