Chci zkomprimovat několik obrázků do archivu .xz. Jak to udělám?
Přijatá odpověď:
Ačkoli tar cJf archive files... jak podrobně popisuje Zacharee1 a heemayl, obvykle budete chtít udělat, dalším způsobem je nasměrovat data tarred do xz příkaz:
tar c files... | xz > archive.tar.xz
Od tar Ubuntu podporuje J Tento alternativní způsob je zvláště užitečný, když chcete předat volby xz .
V tomto příkladu taruji a xzipuji některé soubory TIFF s vysokou úrovní komprese (-9 na xz ) a podrobný výstup (v na tar , -v na xz ):
[email protected]:~/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
To lze samozřejmě provést také ve dvou výslovně samostatných krocích:
[email protected]:~/Pictures$ tar vcf pics.tar *.tif{,f}
page001.tif
page002.tif
page003.tif
page004.tif
page9087.tif
page3la.tiff
quux0000.tiff
[email protected]:~/Pictures$ xz -9v pics.tar
pics.tar (1/1)
100 % 207.3 KiB / 290.0 KiB = 0.715
Tyto dva způsoby nejsou ve skutečnosti ekvivalentní v tom, jak fungují, ačkoli .tar.xz soubory, které nakonec produkují, by měly být stejné (a byly, když jsem to testoval).
- V první je výstup
tarje zprostředkován (|) na vstupxz.xzpřijímá data ztartéměř okamžitě a nikdy se nevytvoří žádný přechodný nekomprimovaný soubor tar. To znamená, že první způsob je v podstatě ekvivalentnítar cJf archive files..., kromě dalších argumentů předávaných doxz. - Ve druhém je prvním příkazem vytvořen nekomprimovaný archiv tar a poté komprimován pomocí
xzve druhém příkazu. (xzpo dokončení automaticky odstraní původní soubor, pokud není vyvolán pomocí-k/--keep.)
Pro další čtení se podívejte na tento příspěvek od Rafaela van Horna a tar a xz manuálové stránky.