Como compactar vários arquivos em um arquivo .xz?

Como compactar vários arquivos em um arquivo .xz?

Quero compactar várias imagens em um arquivo .xz. Como faço isso?

Responder1

Use tarcom -Jopção:

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

taré usado para combinar vários arquivos em um (Arquivo) e então precisamos compactar o arquivo usando o algoritmo de compactação XZ.

Deman tar:

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

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

Observe também que images.tar.xzserá criado no diretório atual, caso queira salvá-lo em outro lugar use /full/path/to/images.tar.xz.

Responder2

Embora comotar cJf archive files...detalhado por Zacharee1epor Heemaylgeralmente é o que você deseja fazer, outra maneira é canalizar dados tarados para oxzcomando:

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

Desde o Ubuntutarsuporta a Jopção, esta forma alternativa é especificamente útil quando você deseja passar opções para xz.

Neste exemplo, eu tar e xzip alguns arquivos TIFF com um alto nível de compactação ( -9to xz) e saída detalhada ( vto tar, -vto 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

É claro que isso também poderia 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 formas não são realmente equivalentes na forma como funcionam, embora os .tar.xzarquivos que produzem no final devam ser os mesmos (e eram, quando os testei).

  • No primeiro, osaídade tarécanalizado( |) para oentradade xz. xzrecebe dados tarquase imediatamente e nenhum arquivo tar intermediário descompactado é criado. Isso quer dizer que a primeira maneira é essencialmente equivalenteparatar cJf archive files..., exceto pelos argumentos adicionais passados ​​para xz.
  • No segundo, um arquivo tar descompactado é criado pelo primeiro comando e depois compactado pelo xzsegundo comando. ( xzexclui automaticamente o arquivo original quando terminar, a menos que seja invocado com -k/ --keep.)

Para leitura adicional, consulteesta postagem de Rafael van Horne as páginas de manual tare xz.

Responder3

Use este comando: tar cJf <archive.tar.xz> <files>. Separe os caminhos dos arquivos com um espaço.

informação relacionada