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


29

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

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

tar
bzip2
xz
gzip

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


Подобный вопрос: 7zip для Linux
Santosh Kumar

Ответы:


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 .


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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.