Я пытаюсь создать .tar.xz
сжатый архив в одной команде. Какой конкретный синтаксис для этого?
Я пытался tar cf - file | xz file.tar.xz
, но это не работает.
compression
archive
tar
xz
Джордж К.
источник
источник
v
к команде switch (tar -cJvf
), чтобы быть подробным, показывает файлы, добавляемые в архив.f
последний, даже без тире.tar
на MacOS, кажется, поддерживает,-J
но функция не указана на странице руководства. Пришлось посмотреть это здесь. Хотя они упоминают XZ в разделе--options
...Switch
-J
работает только на новых системах. Универсальная команда это:Сделать архив .tar.xz
объяснение
tar cf - directory
читает каталог / и начинает переводить его в формат TAR. Вывод этой операции генерируется на стандартном выводе.|
выводит стандартный вывод на вход другой программы ...... что случилось
xz -z -
. XZ настроен на сжатие (-z
) архива со стандартного ввода (-
).Вы перенаправить вывод из
xz
кtar.xz
файлу.источник
-f
не означает "из файла" при передаче вxz
. Вместо этого оно сокращенно--force
(см. Xz (1) для подробностей), и его лучше не использовать, если в этом нет необходимости.tar cf - directory/ | xz -z -T0 - > directory.tar.xz
-1 -T0
или-0 -T0
как опции, который обычно все равно даст вам файл меньшего размера, чем gzip, в сопоставимое или более быстрое время, в то время как значение по умолчанию-6
значительно медленнее чем GZIP.Если вам нравится режим конвейера, это самое чистое решение:
Нет необходимости ставить
f
опцию, чтобы иметь дело с файлами, а затем использовать,-
чтобы указать, что файл является стандартным вводом. Также не обязательно указывать-z
опцию дляxz
, потому что это по умолчанию.Это работает с
gzip
иbzip2
тоже:или
Распаковка также довольно проста:
Если у вас есть только
tar
архив, вы можете использоватьcat
:Если вам нужно только перечислить файлы, используйте
tar t
.источник
Использование параметров сжатия xz
Если вы хотите использовать параметры сжатия для
xz
или, если вы используетеtar
в MacOS, вы, вероятно, хотите избежатьtar -cJf
синтаксиса.Согласно
man xz
, способ сделать это:tar cf - baz | xz -4e > baz.tar.xz
Потому что мне понравился формат Войцеха Адама Кошека , а не информация:
c
создает новый архив для указанных файлов.f
читает из каталога (лучше всего поставить эту секунду, потому что-cf
! =-fc
)-
вывод на стандартный вывод|
вывод труб к следующей командеxz -4e
звонкиxz
с-4e
опцией сжатия. (равно-4
--extreme
)> baz.tar.xz
направляет сжатый и сжатый файл вbaz.tar.xz
где
-4e
, используйте свои собственные параметры сжатия. Я часто использую-k
в--keep
исходном файле и-9
на самом деле сильной компрессии.-z
вручную установитьxz
zip, хотя по умолчанию используется zip, если не указано иное.Разархивировать и распаковать
Чтобы повторить Рафаэля ван Хорна , чтобы распаковать и распаковать (см. Примечание ниже):
Примечание: в отличие от ответа Рафаэля , используйте
xz -dc
вместоcatxz
. Документы рекомендуют это в случае, если вы используете это для сценариев. Лучше всего иметь привычку использовать-d
или--decompress
вместо этогоunxz
. Тем не менее, если вам нужно, использовать эти команды из командной строки, это нормально.источник
tar -cJf
синтаксис в MacOS? Просто любопытно, потому что я делал это только сейчас, и это, казалось, работало.Попробуй это:
tar -cf file.tar file-to-compress ; xz -z file.tar
Примечание:
|
потому что он запускает команды одновременно. Использование;
или выполнение&
команд одна за другой.источник
J
варианта, но это работает. Я думаю, что вам нужен RHEL6.tar -c file-to-compress | xz -z > file.tar.xz
.&
не запускает команду один за другим. Вместо этого он запустит первый как фоновый процесс.