Как сжать несколько файлов в архив .xz?

Я хочу сжать несколько изображений в архив .xz. Как мне это сделать?

10
задан 16 April 2015 в 15:46

3 ответа

Хотя tar cJf archive files... как детализировано Zacharee1 и heemayl обычно, что Вы захотите сделать, иначе должен передать смолившие данные по каналу к xz команда:

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

Начиная с Ubuntu tar поддержки J опция, этот альтернативный путь специфически полезен, когда Вы хотите передать опции xz.

В этом примере я смолю и xzip некоторые файлы TIFF с высоким уровнем сжатия (-9 кому: xz) и подробный вывод (v кому: tar, -v кому: 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

Это могло, конечно, также быть сделано на двух явно отдельных шагах:

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

Те два пути не на самом деле эквивалентны в том, как они работают, хотя .tar.xz файлы, которые они производят в конце, должны быть тем же (и были, когда я протестировал его).

  • В первом, выводе tar передается по каналу (|) к входу xz. xz получает данные из tar почти сразу, и несжатый файл tar никакого промежуточного звена когда-либо создается. Это должно сказать, что первый путь чрезвычайно эквивалентен tar cJf archive files..., за исключением дополнительных аргументов, переданных xz.
  • Во втором несжатый архив tar создается первой командой, затем сжатой xz во второй команде. (xz автоматически удаляет исходный файл, когда он сделан, если не вызвано с -k/--keep.)

Для дополнительных материалов для чтения см. это сообщение Rafael van Horn и tar и xz страницы справочника.

10
ответ дан 17 April 2015 в 01:46

Используйте tar с -J опция:

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

tar используется для объединения нескольких файлов в один (Архив), и затем мы должны сжать архив с помощью алгоритма сжатия XZ.

От 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

Также примечание, которое images.tar.xz будет создано в текущем каталоге, если Вы захотите сохранить его где-то в другом месте, используют /full/path/to/images.tar.xz.

13
ответ дан 17 April 2015 в 01:46

Используйте эту команду: tar cJf <archive.tar.xz> <files>. Отдельные пути к файлам с пространством.

3
ответ дан 17 April 2015 в 01:46

Другие вопросы по тегам:

Похожие вопросы: