Domanda Come decomprimere un file zip dal terminale?


Ho appena scaricato un file .zip da internet. Voglio usare il terminale per decomprimere il file. Qual è il modo corretto per farlo?


1145
2017-12-11 04:37


origine


Estrai tutti i file dalla cartella corrente, puoi usare: decomprimi \ *. Zip - burtsevyg
@burtsevyg il backslash non è necessario lì. Farà il trattamento delle conchiglie \* come simbolo stella letterale. Basta usare unzip *.zip per espandere la shell * a tutti i file che terminano in .zip - Sergiy Kolodyazhnyy


risposte:


Se la unzip il comando non è già installato sul tuo sistema, quindi esegui:

sudo apt-get install unzip

Dopo aver installato l'utilità decomprimere, se si desidera estrarre in una particolare cartella di destinazione, è possibile utilizzare:

unzip file.zip -d destination_folder

1576
2017-12-11 04:44



Se sei già nella directory desideri decomprimere il file, ometti il ​​2 ° e il 3 ° argomento, ad es. unzip /path/to/file.zip - Severo Raz
Ho appena usato questo comando. Questo è un esempio. Passaggio 1 (Ho cambiato la directory in cui è memorizzato il file zip): cd /home/paf/Copy/Programming/Javascript/Json    Passaggio 2 (Estrai il file zip nella directory che ho appena menzionato): unzip file.zip -d /home/paf/Copy/Programming/Javascript/Json - pablofiumara
unzip potrebbe essere un programma predefinito In altre parole, potrebbe non essere necessario installarlo. - noobninja
@Aevi Controlla le pagine man [-d exdir] An optional directory to which to extract files. - Zety
Assicurati di estrarre in una directory, a differenza degli archivi di tar, potresti trovare che molte persone includono dozzine di file nella loro directory radice dei loro file zip, questo può creare un vero casino !!! - Steve


Puoi semplicemente usare unzip.

Installalo: apt-get install unzip

E usalo: unzip file.zip


192
2017-12-11 04:41





Uno strumento più utile è 7z, che blocca e decomprime una gamma di formati di compressione, in particolare lzma, solitamente il protocollo che offre i più alti tassi di compressione.

Questo comando si installa 7z:

sudo apt-get install p7zip-full

Questo comando elenca il contenuto dello zip:

7z l zipfile.zip

Questo comando estrae il contenuto dello zip:

7z x zipfile.zip

96
2017-09-14 08:01



7z e non mantiene la struttura della directory - 7z x fa ... - assylias
13.10 dice che 7z non esiste. Penso che debba sudo apt-get install 7zip - nitishch
Penso che il comando di installazione dovrebbe essere sudo apt-get install p7zipo sudo apt-get install p7zip-full Hai bisogno della versione completa per ottenere il 7z comando. Il pieno è anche l'unico che gestisce zip e altri tipi di formati tra i due. - Automatico
potresti chiarire "uno strumento più utile"? Stai comparando per decomprimere? Potresti fornire qualche esempio di funzionalità che rendano 7z più utile, e forse in quali contesti 7z è preferito? - David LeBauer
Per unzip è più utile: facile da usare e il suo Nome da ricordare. - Shy Robbiani


Puoi usare:

unzip file.zip -d somedir

estrarre a yourpath/somedir

Se vuoi estrarre su un percorso assoluto, usa

sudo unzip file.zip -d /somedir

38
2018-05-28 16:45





Utilizzo degli strumenti di scripting: Perl e Python

Molte risposte qui menzionano strumenti che richiedono l'installazione, ma nessuno ha menzionato che due dei linguaggi di scripting di Ubuntu, Perl e Python, sono già dotati di tutti i moduli necessari che consentono di decomprimere un archivio zip, il che significa che non è necessario installare nulla altro. Basta usare uno dei due script presentati di seguito per eseguire il lavoro. Sono abbastanza corti e possono anche essere condensati in un comando one-liner se lo volessimo.

Pitone

#!/usr/bin/env python3
import sys
from zipfile import PyZipFile
for zip_file in sys.argv[1:]:
    pzf = PyZipFile(zip_file)
    pzf.extractall()

Uso:

./pyunzip master.zip

Perl

#!/usr/bin/env perl
use Archive::Extract;
foreach my $filepath (@ARGV){
    my $archive = Archive::Extract->new( archive => $filepath );
    $archive->extract;
}

Uso:

./perlunzip master.zip

23
2018-06-02 18:43





Nel caso in cui la tua destinazione sia uguale al file zip sorgente, puoi semplicemente fare:

unzip filename.zip

20
2018-03-20 06:28



Su Ubuntu 17.04, -d richiede un motivo sconosciuto. - 林果皞


preferisco bsdtar a unzip/zip. Per l'estrazione, sono piuttosto simili:

bsdtar -x -f /one/two/three/four.zip -C /five
unzip /one/two/three/four.zip -d /five

Tuttavia per zippare, bsdtar vince. Dì che hai questo input:

/one/two/three/alfa/four.txt
/one/two/three/bravo/four.txt

e voglio questo nel file zip:

alfa/four.txt
bravo/four.txt

Questo è facile con bsdtar:

bsdtar -a -c -f four.zip -C /one/two/three alfa bravo

zip non ha il -d opzione come decomprimere, quindi non hai modo di ottenere quanto sopra a meno che tu cd primo.


14
2017-12-02 01:50





Ecco la descrizione dettagliata delle opzioni che trovo utili:

Command: unzip -[option] zip-path.  
               -l List archive files.  
               -t Test archive files with cyclic redundancy check.  
               -u update the existing files.  
               -z archive comment.  

14
2017-10-14 10:58