Embora tar cJf archive files...
como detalhado por Zacharee1 e xz
comando:
tar c files... | xz > archive.tar.xz
Como o tar
do Ubuntu suporta a opção J
, O modo alternativo é especialmente útil quando você deseja passar opções para xz
.
Neste exemplo, eu coloco e xzip alguns arquivos TIFF com um alto nível de compactação ( -9
to xz
) e saída detalhada ( v
to tar
, -v
to xz
):
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
Isso, claro, também pode ser feito em duas etapas explicitamente separadas:
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
Essas duas maneiras não são realmente equivalentes em como elas operam, embora os arquivos .tar.xz
que eles produzem no final devam ser os mesmos (e foram, quando eu os testei).
- No primeiro, a saída de
tar
é canalizado (|
) para o entrada dexz
.xz
recebe dados detar
quase imediatamente e nenhum arquivo tar descompactado intermediário é criado. Isso quer dizer que a primeira maneira é essencialmente equivalente atar cJf archive
files... , exceto pelos argumentos adicionais passados paraxz
. - No segundo, um arquivo tar descompactado é criado pelo primeiro comando e, em seguida, compactado por
xz
no segundo comando. (xz
exclui automaticamente o arquivo original quando ele é feito, a menos que seja chamado com-k
/--keep
.)
Para ler mais, consulte esta postagem de Rafael van Horn e as páginas tar
e xz
.