Wyodrębnić pliki 7z za pomocą standardowych narzędzi linux?

29

Wiem, że możesz wyodrębnić .7zpliki za pomocą 7-zip.

Czy istnieje inny standardowy program linux, który może to zrobić? Może jeden z nich

tar
bzip2
xz
gzip

Dodam, że bsdtarmożna to zrobić, ale nie jest dostępne we wszystkich systemach.

Steven Penny
źródło
podobne pytanie: 7zip dla Linuxa
Santosh Kumar
askubuntu.com/questions/219392/how-can-i-uncompress-a-7z-file
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

Odpowiedzi:

10

Archiwa nr 7-Zip używają LZMA i LZMA2, które nie są obsługiwane przez standardowe narzędzia (używają również bzip2, ale nadal trzeba zdekodować nagłówek).

Ignacio Vazquez-Abrams
źródło
1
Właściwie xzużywa również LZMA. Ale tak, nadal nie zrozumie reszty formatu 7z.
jjlin
31

Archiwa 7-zip można wyodrębnić za pomocą p7zip ( http://p7zip.sourceforge.net/ ) w systemie Linux. Jest on zawarty w repozytoriach: Debian, Fedora, Ubuntu i ewentualnie innych dystrybucji.

Wyświetl zawartość za pomocą (mała litera L, dla listy):

7za l myarchive. 7z

Wyodrębnij zawartość:

7za x myarchive. 7z
Mike Fleetwood
źródło
1
p7zip jest dostępny w plikach Macports jako plik binarny. Po prostu:sudo port install p7zip
smci
2
na 64-bitowym RHEL 6, mniam zainstaluj p7zip.x86_64, a jeśli to konieczne, mum zainstaluj p7zip-plugins.x86_64
rivu
2

„Standardowym” sposobem pracy z archiwami 7-Zip na Uniksie jest użycie P7ZIP . Ale ponieważ format 7-Zip został zaprojektowany przede wszystkim dla systemu Windows, nie należy spodziewać P7ZIPsię domyślnej instalacji w dystrybucjach Linuksa.

Jeśli chcesz skorzystać z kompresji LZMA na Uniksie, wybierz XZ Utils .

jjlin
źródło
1

Nie mogłem znaleźć 7za w żadnym z repozytoriów yum na RHEL / CentOS, więc właśnie pobrałem najnowszą wersję źródła z sourceforge.net:

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

(zmień „16.02” powyżej na najnowszą wersję w momencie, gdy próbujesz pobrać, możesz dowiedzieć się, przechodząc do https://sourceforge.net/projects/p7zip/files/p7zip/ ).

Znajdując się w katalogu, w którym pobrano archiwum p7zip, rozpakuj je:

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

Następnie uruchom polecenie make jako użytkownik root w wyodrębnionym folderze:

# make
# make install

To będzie produkować 7zabinarne w /usr/local/binkatalogu (jeśli używasz RHEL7 co najmniej):

$ whereis 7za
7za: /usr/local/bin/7za
Tagar
źródło
0

Najpierw wypróbowałem 7za, ale to nie zadziałało, więc spróbowałem użyć 7z z tymi samymi opcjami i działa. Oto przykład: Aby wyodrębnić: 7z e xy213file.7z

Avinash
źródło
0

Plik binarny 7za jest częścią pakietu p7zip. Można go zainstalować z epelrepozytorium, jeśli używasz RHEL / OL / CentOS (testowany na RHEL6 / RHEL7):

RHEL6, 7:

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

Ten pakiet nie był aktualizowany przez długi czas, ale nadal można go użyć do wyodrębnienia plików:

$ 7za x xyz_7zfile.7z
Gryu
źródło
-1

Pakiet p7zip jest dostępny w wersji Macports jako plik binarny.

Właśnie: sudo port install p7zip

I ciebie nie ma! 7z x downloads/myfile.7z

To samo dotyczy CentOS, ale używając yum:

sudo yum install p7zip

smci
źródło