Come posso creare ed estrarre archivi zip dalla riga di comando?
Come posso creare ed estrarre archivi zip dalla riga di comando?
Risposte:
In genere si usa tarper creare un archivio compresso e uno gzipo bzip2per comprimere tale archivio. I corrispondenti comandi gunzipe bunzip2possono essere usati per decomprimere detto archivio, oppure puoi semplicemente usare i flag sul tarcomando per eseguire la decompressione.
Se ti riferisci specificamente al formato di file Zip , puoi semplicemente usare i comandi zipe unzip.
Per comprimere:
zip squash.zip file1 file2 file3
o per comprimere una directory
zip -r squash.zip dir1
Per decomprimere:
unzip squash.zip
questo lo decomprime nella directory di lavoro corrente.
zip -r9 archive.zip files...sintassi (-r = ricorsivo -9 = compressione massima).
zippuò creare molti gusti diversi di archivi .ZIP, oltre a utilizzare molti compressori diversi. D'altra parte, ci sono una serie di altri strumenti di compressione chiamati in modo simile: 7-Zip, gzip, bzip2, rzip, ecc. Che non sono intercambiabili.
cd dir1; zip -r ../squash.zip *
unzip -d myfolder squash.zipper estrarre in una nuova directory separata ( myfolder) invece di mettere tutti i file direttamente nella directory corrente, il che può essere fastidioso se il file zip contiene molti file e directory al suo livello superiore. Questo imita il funzionamento della maggior parte degli strumenti di decompressione dell'interfaccia utente.
Ci sono un vero e vasto numero di differenti modi per comprimere e decomprimere in derivati UNIX così ho intenzione di assumere che volevi dire "zip" in senso generico, piuttosto che una specifica formato di file.
Puoi comprimere i file (in formato compresso) con il tarprogramma GNU :
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 sia in targrado di eseguire la compressione e di combinare i file in uno.
In caso contrario, puoi semplicemente utilizzare tar cvfseguito da gzip(di nuovo, se disponibile) per la compressione e gunzipseguito da tar xvf.
Per una gestione specifica dei file in formato ZIP, consiglierei di scaricarlo 7zipe usarlo - riconosce una grande varietà di formati di file, incluso quello ZIP.
tar jcvf file.tar.bz2...per comprimere in formato bzip2 o tar Jcvf file.tar.xz ...per la compressione xz.
Bene, quando si tratta di distribuire file per una varietà di sistemi operativi, consiglierei 7-zip .
Di solito nel pacchetto p7zip, otterrai il comando 7ze 7za, con il quale puoi creare i tuoi archivi 7z.
7zapuò anche decomprimere archivi zip standard ( pkzip ) (e crearli anche con l' -tzipinterruttore).
Compressione:
7za a archive.7z file1 file2 directory/
decompressione:
7za x archive.7z
Può anche creare archivi autoestraenti con l' -sfxopzione:
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 l' -Jopzione con tar:
tar cJf archive.tar.xz file1 file2 dir
xzè uno strumento di UNIX, che utilizza LZMA2 per la compressione, ma il modo in cui funziona gz, bz2ecc funziona. Funziona anche come filtro.
7z non crea archivi con informazioni complete sul filesystem su UNIX, quindi dovresti usarlo tarprima di usare 7z (ma poiché 7z memorizza altre informazioni sul tarfile, ti consiglio di usarlo xz, poiché è progettato per esso):
tar cf - file1 file2 dir | 7za z -si archive.tar.7z
atool, è un piccolo strumento che rende più comodo l'uso di molti compressori diversi. Legalo ae creare un archivio diventa a arc.7z folder/o estrae un semplicea arc.7z
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.
Anche BSD Tar può fare questo
bsdtar acf bravo.zip alfa.jpg
O:
bsdtar xf bravo.zip
tarha il vantaggio di supportare diversi formati di compressione aggiuntivi rispetto a GNU tare altri tar. Il più grande vantaggio è, forse, che lo fa usando una tarsintassi simile . Si può sicuramente utilizzare 7z, unrar, unzip, ecc dalla linea di comando, ma usare una diversa sintassi.
La risposta più standard è pax, che è raccomandata sopra cpioe tar.
A differenza di cpioPOSIX tar, ma come GNU tar, paxè in grado sia di archiviare i file sia di comprimere l'archivio. Questo comportamento è diverso da quello zipche comprime ogni file prima di inserirlo nell'archivio.
paxgli archivi zip supporto?
paxneanche gli archivi!
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| yuminstallalo.
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é voglio annullare alcune delle modifiche.
In tal caso, copio l'elenco dei file modificati in un file temporaneo e lo utilizzo zipcon l'opzione -@.
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 -@