it-swarm.it

Come posso comprimere / decomprimere dalla riga di comando unix?

Come posso creare ed estrarre archivi Zip dalla riga di comando?

570
joachim

In genere si utilizza tar per creare un archivio non compresso e gzip o bzip2 Per comprimere tale archivio. I comandi gunzip e bunzip2 Corrispondenti possono essere usati per decomprimere detto archivio, oppure puoi semplicemente usare i flag sul comando tar per eseguire la decompressione.

Se ti riferisci specificamente al formato di file zip , puoi semplicemente usare i comandi Zip e unzip.

Per comprimere:

Zip squash.Zip file1 file2 file3

o comprimere una directory

Zip -r squash.Zip dir1

Per decomprimere:

unzip squash.Zip

questo lo decomprime nella directory di lavoro corrente.

698
Justin Ethier

Esistono davvero vastissimi numero di modi diversi per comprimere e decomprimere in derivati ​​UNIX quindi suppongo che tu intendi "Zip" in senso generico piuttosto che un specifico formato del file.

Puoi comprimere i file (in formato compresso) con il programma GNU tar:

tar -zcvf myfile.tgz .

che farà la directory corrente. Sostituisci . con altri nomi di file se vuoi qualcos'altro.

Per decomprimere quel file, utilizzare:

tar -zxvf myfile.tgz

Ciò presuppone ovviamente che tu abbia un tar in grado di eseguire la compressione e di combinare i file in uno.

In caso contrario, puoi semplicemente utilizzare tar cvf seguito da gzip (di nuovo, se disponibile) per la compressione e gunzip seguito da tar xvf.


Per una gestione specifica dei file in formato Zip, consiglierei di scaricare 7Zip e usandolo - riconosce una varietà enorme di formati di file, incluso quello Zip.

68
user14408

Se non hai i pacchetti Zip e unzip installati e hai Java, puoi usare jar per decomprimere:

jar -xf file.Zip
33
mlocke

Bene, quando si tratta di distribuire file per una varietà di sistemi operativi, raccomanderei 7-Zip .

Di solito nel pacchetto p7Zip, otterrai il 7z e 7za comando, con il quale è possibile creare i propri archivi 7z.

7za può anche decomprimere gli archivi zip standard ( pkzip ) (e crearli anche con -tzip interruttore).

Compressione:

7za a archive.7z file1 file2 directory/

Decompressione:

7za x archive.7z

Può anche creare archivi autoestraenti con il -sfx interruttore:

7za a -sfx archive.exe files1 file2 dir

Consiglio questo metodo nel caso in cui gli utenti Windows non riescano ad aprire gli archivi 7z (nel caso in cui si desideri consigliare uno strumento per questo: PeaZip ).

Se si desidera utilizzare lo stesso algoritmo di compressione con i tarball, utilizzare -J cambia con tar:

tar cJf archive.tar.xz file1 file2 dir

xz è uno strumento UNIX, che utilizza LZMA2 per la compressione, ma funziona come gz, bz2, ecc funziona. Funziona anche come filtro.

7z non crea archivi con informazioni complete sul filesystem su UNIX, quindi dovresti usare tar prima di usare 7z (ma poiché 7z memorizza altre informazioni sul file tar, ti consiglio usando xz, poiché è progettato per questo):

tar cf - file1 file2 dir | 7za z -si archive.tar.7z
30
polemon
unzip <filename>

e

Zip -r archive.Zip <filename> [filename]

Dovrai assicurarti che questi comandi siano installati tramite il tuo gestore pacchetti. Non è più difficile che usare qualsiasi altra riga di comando. È sicuramente più semplice della creazione di archivi con tar.

23
Starfish

Anche BSD Tar può fare questo

bsdtar -a -c -f sunday.Zip sunday.jpg

O:

bsdtar -x -f sunday.Zip
4
Steven Penny

La risposta più standard è pax , che è consigliata su cpio e tar .

A differenza di cpio e POSIX tar, ma like GNU tar, pax è in grado sia di archiviare i file sia di comprimere il archivio Questo comportamento è diverso da Zip , che comprime ogni file prima di inserirlo nell'archivio.

3
mouviciel

Questo riguarda solo l'estrazione.

Per questo, ho iniziato a usare dtrx .

Il punto è di rimuovere la complessità. Quindi gli passi semplicemente in qualsiasi archivio e capisce cosa bisogna fare con esso. Zip, tar, gz ... L'uso è sempre lo stesso - dtrx archive.Zip. Fa alcune domande e il gioco è fatto.

dtrx è disponibile nella maggior parte dei repository, quindi puoi apt | yum installarlo.

2
JackLeo

Mi trovo spesso a tentare di comprimere i file modificati nella mia directory di lavoro - per copiare tutti i file modificati in un'altra directory di lavoro sandbox o per conservarli per un breve periodo perché desidero annullare alcune delle modifiche.

In tal caso, copio l'elenco dei file modificati in un file temporaneo e utilizzo Zip con l'opzione [email protected].

Diciamo che ho modificato i file Foo.h, Bar.cc e TestBar.cc.

Diciamo che creo un file chiamato modified-files.txt i cui contenuti sono:

Foo.h
Bar.cc
TestBar.cc

Eseguo il seguente comando per comprimere quei file:

cat modified-files.txt | Zip modified-files.Zip [email protected]
1
R Sahu