
Quero compactar várias imagens em um arquivo .xz. Como faço isso?
Responder1
Use tar
com -J
opçã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.xz
será 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 oxz
comando:
tar c files... | xz > archive.tar.xz
Desde o Ubuntutar
suporta a J
opçã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 ( -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
É 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.xz
arquivos que produzem no final devam ser os mesmos (e eram, quando os testei).
- No primeiro, osaídade
tar
écanalizado(|
) para oentradadexz
.xz
recebe dadostar
quase 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 paraxz
. - No segundo, um arquivo tar descompactado é criado pelo primeiro comando e depois compactado pelo
xz
segundo comando. (xz
exclui 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 tar
e xz
.
Responder3
Use este comando: tar cJf <archive.tar.xz> <files>
. Separe os caminhos dos arquivos com um espaço.