Извлечь файлы 7z с помощью стандартных инструментов Linux?

29

Я знаю, что вы можете извлечь .7zфайлы с 7-Zip.

Есть ли другая стандартная программа Linux, которая может сделать это? Может быть один из них

tar
bzip2
xz
gzip

Я добавлю, что bsdtarмогу это сделать, но доступно не на всех системах.

Стивен Пенни
источник
Подобный вопрос: 7zip для Linux
Santosh Kumar
askubuntu.com/questions/219392/how-can-i-uncompress-a-7z-file
Сиро Сантилли 新疆 改造 中心 法轮功 六四 事件

Ответы:

10

7-Zip архивы используют LZMA и LZMA2, которые не поддерживаются стандартными инструментами (они также используют bzip2, но вам все равно нужно декодировать заголовок).

Игнасио Васкес-Абрамс
источник
1
На самом деле, также xzиспользует LZMA. Но да, он все еще не поймет остальную часть формата 7z.
Jjlin
31

Архивы 7-zip можно извлечь с помощью p7zip ( http://p7zip.sourceforge.net/ ) в Linux. Он включен в репозитории Debian, Fedora, Ubuntu и, возможно, других дистрибутивов.

Перечислите содержимое с помощью (нижний регистр L, для списка):

7za L Myarchive.7Z

Извлечь содержимое:

7za x myarchive.7z
Майк Флитвуд
источник
1
p7zip доступен в macports, как бинарный файл. Просто:sudo port install p7zip
smci
2
на 64-битном RHEL 6 yum установите p7zip.x86_64 и, если необходимо, yum установите p7zip-plugins.x86_64
rivu
2

«Стандартный» способ работы с 7-Zip-архивами в Unix - это использование P7ZIP . Но так как формат 7-Zip был разработан в первую очередь для Windows, вы не должны ожидать, P7ZIPчто он будет установлен по умолчанию в дистрибутивах Linux.

Если вы хотите использовать LZMA-сжатие в Unix, предпочтите XZ Utils .

jjlin
источник
1

Я не смог найти 7za ни в одном репозитории yum на RHEL / CentOS, поэтому я только что загрузил последнюю версию исходного кода с sourceforge.net:

$ wget https://sourceforge.net/projects/p7zip/files/p7zip/16.02/p7zip_16.02_src_all.tar.bz2

(измените "16.02" выше на любую последнюю версию, когда вы пытаетесь загрузить, вы можете узнать, перейдя по адресу https://sourceforge.net/projects/p7zip/files/p7zip/ ).

Находясь в каталоге, куда вы скачали архив p7zip, распакуйте его:

$ tar -xvjf p7zip_16.02_src_all.tar.bz2

Затем выполните команду make от имени пользователя root внутри распакованной папки:

# make
# make install

Он выдаст 7zaдвоичный файл в /usr/local/binкаталоге (если вы используете хотя бы RHEL7):

$ whereis 7za
7za: /usr/local/bin/7za
Tagar
источник
0

Сначала я попробовал 7za, но это не сработало, поэтому я попытался использовать 7z с теми же опциями, и это работает. Вот пример: Извлечь: 7z e xy213file.7z

Авинаш
источник
0

7za двоичный файл является частью пакета p7zip может быть использован для этого. Его можно установить из epelрепозитория, если вы используете RHEL / OL / CentOS (протестировано на RHEL6 / RHEL7):

RHEL6, 7:

# rpm -Uvh http://mirrors.kernel.org/fedora-epel/6/i386/epel-release-6-8.noarch.rpm
# yum install p7zip

Этот пакет долгое время не обновлялся, но все еще может использоваться для извлечения файлов:

$ 7za x xyz_7zfile.7z
Грыу
источник
-1

Пакет p7zip доступен в macports, как бинарный файл.

Только что: sudo port install p7zip

И ты далеко! 7z x downloads/myfile.7z

То же самое касается CentOS, но с использованием yum:

sudo yum install p7zip

SMCI
источник