
複数の画像を .xz アーカイブに圧縮したいのですが、どうすればいいでしょうか?
答え1
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
。
答え2
ただし、tar cJf archive files...
Zacharee1 による詳細そしてheemayl より通常はこれが望ましい方法ですが、別の方法としては、tarされたデータをxz
指示:
tar c files... | xz > archive.tar.xz
Ubuntuのtar
は オプションをサポートしているためJ
、この代替方法は にオプションを渡す場合に特に便利ですxz
。
この例では、いくつかの TIFF ファイルを高レベルの圧縮 (-9
からxz
) と詳細な出力 (v
からtar
、-v
からxz
) で 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
最終的に生成されるファイルは同じになるはずです (実際にテストしたときは同じでした)。
- まず、出力の
tar
パイプ(|
)に入力のxz
。はほぼ即座xz
にデータを受信しtar
、中間の非圧縮tarファイルは作成されません。つまり、最初の方法は本質的に同等です。にtar cJf archive files...
ただし、 に渡される追加の引数は除きますxz
。 - 2 番目では、最初のコマンドによって圧縮されていない tar アーカイブが作成され、
xz
2 番目のコマンドによって圧縮されます。( /xz
で呼び出されない限り、完了すると元のファイルが自動的に削除されます。)-k
--keep
詳細については、この投稿はラファエル・ファン・ホーンによるものですおよびtar
manxz
ページ。
答え3
このコマンドを使用します:tar cJf <archive.tar.xz> <files>
ファイル パスはスペースで区切ります。