Quero compactar várias imagens em um arquivo .xz. Como faço isso?
Quero compactar várias imagens em um arquivo .xz. Como faço isso?
Respostas:
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 tarsuporta a Jopçã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 ( -9para xz) e saída detalhada ( vpara tar, -vpara 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.xzarquivos que eles produzem no final devam ser os mesmos (e eram, quando eu o testei).
taré canalizada ( |) para a entrada de xz. xzrecebe dados tarquase 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.xzno segundo comando. ( xzexclui 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 tare xzman.
tar -Jé para especificar a variável de ambiente XZ_OPT, tornando a invocação algo como:XZ_OPT="-9v" tar -Jcf out.tar.xz [files]
Use tarcom a -Jopção:
tar -cvJf images.tar.xz /directory/containing/images/*
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:
-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, se você quiser salvá-lo em outro lugar, use /full/path/to/images.tar.xz.
xzé o mais lento entre xz, gzip, bzip2devido à 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.
-cfJ
-em front..from man tar: A function letter need not be prefixed with ``-''..assim tar cJfé absolutamente OK.
tar cJf, que daria OP outra maneira de fazer isso como a minha resposta já coberto tar --cvJfem primeiro lugar ..