Quero compactar várias imagens em um arquivo .xz. Como faço isso?
fonte
Quero compactar várias imagens em um arquivo .xz. Como faço isso?
Embora, como detalhado por Zacharee1 e por heemayl, seja o que você deseja fazer, outra maneira é canalizar dados tarados para o comando:tar cJf archive files...
xz
tar c files... | xz > archive.tar.xz
Como o Ubuntu tar
suporta a J
opção, essa maneira 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
para xz
) e saída detalhada ( v
para tar
, -v
para 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
Obviamente, isso 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 na maneira como operam, embora os .tar.xz
arquivos que eles produzem no final devam ser os mesmos (e eram, quando eu o testei).
tar
é canalizada ( |
) para a entrada de xz
. xz
recebe dados tar
quase imediatamente e nenhum arquivo tar descompactado intermediário é criado. Isso significa que a primeira maneira é essencialmente equivalente atar cJf archive files...
, exceto pelos argumentos adicionais passados para xz
.xz
no segundo comando. ( xz
exclui automaticamente o arquivo original quando terminar, a menos que seja chamado com -k
/ --keep
.)Para uma leitura mais aprofundada, consulte este post de Rafael van Horn e as páginas tar
e xz
man.
tar -J
é para especificar a variável de ambienteXZ_OPT
, tornando a invocação algo como:XZ_OPT="-9v" tar -Jcf out.tar.xz [files]
Use
tar
com a-J
opção:tar
é usado para combinar vários arquivos em um (arquivo morto) e, em seguida, precisamos compactar o arquivo morto usando o algoritmo de compressão XZ.De
man tar
:Observe também que
images.tar.xz
será criado no diretório atual, se você quiser salvá-lo em outro lugar, use/full/path/to/images.tar.xz
.fonte
xz
é o mais lento entrexz
,gzip
,bzip2
devido à sua maior taxa de compressão do que a lentidão others..the vale para lidar com se você quiser mais de compressão ..Utilize este comando:
tar cJf <archive.tar.xz> <files>
. Separe os caminhos de arquivo com um espaço.fonte
-cfJ
-
em front..fromman tar
:A function letter need not be prefixed with ``-''
..assimtar cJf
é absolutamente OK.tar cJf
, que daria OP outra maneira de fazer isso como a minha resposta já cobertotar --cvJf
em primeiro lugar ..