Esempi di 7-Zip a riga di comando

Questo tutorial mostra 7-Zip a riga di comando. Comprimere, estrarre, archiviare e ottimizzare con l’eseguibile 7za.exe.

7-Zip è un programma di compressione efficace.

Il programma 7za.exe è usato per comprimere, estrarre e aggiornare i file attraverso la riga di comando. Fornisce una compressione superiore. È open-source. Questo lo rende facile da ottenere e usare.

Inizio. Per prima cosa devi scaricare l’eseguibile a riga di comando di 7-Zip, 7za.exe. Questo è l’exe che userai per eseguire comandi sugli archivi. Vai su 7-zip.org e ottieni la versione a riga di comando.

Tip: Per comodità e per non dover cambiare i percorsi d’ambiente, metti il file 7za.exe nella tua directory utente.

Prossimo: Aprite la console di Windows e provate il programma 7za.exe con alcuni comandi. Digitate il nome dell’exe 7za e questo verrà visualizzato.

7-Zip default output7-Zip (A) 4.60 beta Copyright (c) 1999-2008 Igor Pavlov 2008-08-19Usage: 7za <command> <archive_name> 

Vediamo la grammatica che dobbiamo usare con 7za.exe. Il “comando” è il verbo principale. Poi si specificano gli switch opzionali, il nome dell’archivio (sia quello di origine che quello di destinazione) e i file. La mia directory utente è “C:\Users\Sam\”.

Comando a. Puoi usare il comando “a” con la singola lettera a. Questo comando sta per “archivio” o “aggiungere”. Usalo per mettere i file in un archivio. Devi specificare l’archivio di destinazione e i file di origine (in quest’ordine).

Sul sistema di prova, la directory C:\Users\Sam contiene due file (file1.txt e file2.txt). Il comando mette questi due file in un archivio, ed è necessario digitarlo nel prompt dei comandi.

C:\Users\Sam>7za a -t7z files.7z *.txt7-Zip (A) 4.60 beta Copyright (c) 1999-2008 Igor Pavlov 2008-08-19ScanningCreating archive files.7zCompressing file1.txtCompressing file2.txtEverything is OkC:\Users\Sam>

Suggerimento: per aprire l’archivio, cliccaci sopra con il tasto destro e seleziona 7-Zip -> Apri archivio. Lo screenshot mostra i file compressi in files.7z.

Comando d. Qui vediamo un esempio del comando “d” nelle linee di comando di 7-Zip. Questo sta per “cancellare” ed è usato molto meno spesso. Permette di rimuovere un certo file (o un insieme di file) dall’interno di un archivio.

Nota: ne avrai bisogno se usi archivi enormi e hai bisogno di risparmiare tempo. Questo viene dal manuale.

7z d archive.zip *.bak -r7z: use executabled: delete filesarchive.zip: delete from this archive*.bak: only match bak files-r: traverse all subdirectories

Tip: Si può anche rimuovere un singolo file da un archivio con “d”. Questo è più utile quando non avete un archivio solido.

Comando e. Qui usiamo il comando “e” nella finestra della vostra console. La “e” sta per extract, e significa decomprimere o espandere un archivio. Devi sempre specificare l’archivio di origine, e puoi anche specificare una destinazione.

Info: Il comando “e” estrae tutto in una directory specificata. Un altro comando “x” può preservare le strutture delle directory negli archivi.

7z e archive.zip7z: executablee: use extract commandarchive.zip: source archive you want to expand

Indicazioni di sovrascrittura: 7-Zip vi chiederà sempre se c’è un file che deve sovrascrivere per estrarre il nuovo file.

Tuttavia: Questo può essere problematico se stai facendo scripting o incorporando 7za.exe. In questo caso, vedi lo switch -y.

Comando l. Usiamo ora il comando “l” (lettera ell minuscola). La L minuscola è usata per elencare il contenuto degli archivi e probabilmente non avrete bisogno di usarla spesso. Ho pensato di testarlo e mostrare un esempio.

Avanti: Questo mostra l’elenco di un archivio solido. Gli originali sono 27216 byte e 3888 byte. Si comprimono a 1030 byte.

C:\Users\Sam>7za l files.7z7-Zip (A) 4.60 beta Copyright (c) 1999-2008 Igor Pavlov 2008-08-19Listing archive: files.7zMethod = LZMASolid = +Blocks = 1Physical Size = 1202Headers Size = 172 Date Time Attr Size Compressed Name------------------- ----- ------------ ------------ ------------------------2008-10-02 15:48:01 ....A 27216 1030 file1.txt2008-10-02 15:47:45 ....A 3888 file2.txt------------------- ----- ------------ ------------ ------------------------ 31104 1030 2 files, 0 folders

Comando t. Qui usiamo il comando “t” nel programma 7z. Questo comando permette di testare l’integrità degli archivi. Sta per “test” ed è molto meno utile dello switch “-t”. Non confondete i due. Questo è usato per la diagnostica.

7z t archive.zip *.doc -r7z: use this executablet: test the specified archivearchive.zip: the archive you want to test*.doc: test all these files in the archive-r: recurse all child directories

Comando u. Il comando “u” in 7-Zip sta per update. Questo è un comando utile ed è ottimo quando si desidera sostituire i vecchi file nel proprio archivio con file più recenti. Questo evita di dover decomprimere e ricomprimere l’intero archivio.

7z u archive.zip *.doc7z: executable nameu: update commandarchive.zip: archive you want to update files in*.doc: only update these files (Word documents)

Attenzione: Il comando “u” non funziona con gli archivi solidi. Un archivio solido è un archivio in cui tutti i file sono compressi insieme.

Quindi: Non puoi aggiornare file specifici in archivi solidi con il comando “u”. Gli archivi solidi sono limitati.

Switch m. Possiamo cambiare le impostazioni di ottimizzazione in 7-Zip sulla linea di comando. Questa è l’opzione più importante e utile che puoi usare. Specifica il metodo di compressione. Qui mostrerò una serie di opzioni e anche alcuni esempi.

Livelli di compressione

Compression levelsSwitch -mx0: Don't compress at all. This is called "copy mode."Switch -mx1: Low compression. This is called "fastest" mode.Switch -mx3: Fast compression mode. Will automatically set various parameters.Switch -mx5: Same as above, but "normal."Switch -mx7: This means "maximum" compression.Switch -mx9: This means "ultra" compression. You probably want to use this.

Switch m, avanzato. Qui ci sono gli interruttori del metodo di compressione avanzato (-m). I primi tre sono di solito di uso limitato, ma potresti trarre beneficio dal modificarli. La mia esperienza è che l’ottimizzazione manuale di queste opzioni non produce grandi benefici.

Switch -mfb: Specifica il numero di byte veloci. A volte aiuta con file “sparsi”. Non preoccuparti.

Switch -mpass: Numero di passaggi per la compressione deflate. Non preoccuparti di questo. Impostato automaticamente con i livelli.

Switch -md: Questo specifica la dimensione del dizionario. È impostato automaticamente, quindi non preoccuparti.

Switch -mmt: Abilita il multithreading. Usalo se hai un quad-core e un archivio enorme. Specificare “on” o “off”. Questo può essere abilitato di default.

Comando x. Questo comando è come “e” tranne che conserva i percorsi completi. Se hai una struttura di directory elaborata o importante, usa questa opzione. Sarebbe molto utile per i backup di sistema o per backup molto grandi. Ecco la sintassi di esempio.

7z x archive.zip7z: executable namex: use the extract commandarchive.zip: the archive you want to extract all the files from

Switch t type. Qui mostro come specificare il tipo preciso di archivio che si vuole creare. Notate che potete specificare qualsiasi nome di file che volete per qualsiasi tipo. Ma alcune estensioni sono raccomandate – sono standard.

Type switches Switch: -t7z Format: 7ZExample filename: archive.7z (default option) Switch: -tgzip Format: GZIPExample filename: archive.gzip, archive.gz Switch: -tzip Format: ZIPExample filename: archive.zip (compatible) Switch: -tbzip2 Format: BZIP2Example filename: archive.bzip2 Switch: -ttar Format: TARExample filename: tarball.tar (UNIX and Linux) Switch: -tiso Format: ISOExample filename: image.iso (may not be supported) Switch: -tudf Format: UDFExample filename: disk.udf

Inoltre, il manuale di 7-Zip fornisce alcuni esempi utili per il cambio di tipo. Mostra gli switch -tiso e -tudf. Questi non sono i più comuni. Quasi tutti gli esempi in questo documento usano gli switch -t.

7z a -tiso archive.iso7z a -tudf archive.udf7z: executable namea: add to archive-tiso or -tudf: format of archive to createarchive.iso or archive.udf: name of archive to create

Archivi solidi. 7z è l’unico formato di file in 7-Zip in cui è possibile specificare se l’archivio è solido o meno. Solido significa che tutti i file sono compressi come uno solo. Rende impossibile usare il comando “u” per aggiornare i singoli file.

Switch -ms=on: Abilita la modalità solida. Questo è il valore predefinito quindi non avrete spesso bisogno di specificarlo.

Switch -ms=off: Disabilita la modalità solida. Utile quando hai bisogno di aggiornare singoli file. Ridurrà i rapporti di compressione normalmente.

Archivi 7z. Puoi cambiare molti valori e interruttori sugli archivi 7z, con infinite permutazioni. Alcune cose che puoi cambiare sono le dimensioni del dizionario, i valori di FastBytes, i valori di MatchFinder e i filtri. Normalmente non hai bisogno di occupartene.

PPMd. Con il formato 7z, puoi specificare l’algoritmo. PPMd è veloce ed efficace per comprimere file di testo semplice. È ideale per grandi collezioni di documenti Word. PPMd non funziona altrettanto bene sui file contenenti dati binari.

PPMd switch -mmem=24b, -mmem=24k, -mmem=24m: Questi controllano la quantità di memoria utilizzata. Sono utili e più alto è normalmente migliore.

PPMd switch -mo=2, -mo=32: Questi specificano l’ordine del modello in PPMd. Non sono normalmente utili.

Quando dovrei usare PPMd? Dovresti usare PPMd quando hai un grande corpus (corpo) di testo. Questo potrebbe includere HTML o altre formattazioni, ma il testo semplice dovrebbe dominare. Può migliorare i rapporti di circa il 30% su alcuni set di dati.

Comandi di esempio. Qui mostro i comandi di esempio di compressione dal manuale di 7-Zip. Ho dimostrato quelli semplici all’inizio di questo documento. Questi sono più complessi. Usiamo più caratteristiche della linea di comando di 7-Zip.

7z a -tzip archive.zip *.jpg -mx07z: name of executablea: add to archive command-tzip: specify a ZIP archive (useful for compatibility)archive.zip: destination archive*.jpg: only add jpg files to archive-mx0: don't compress, just copy useful for already-compressed files

Esempio di formato 7z. Questa prossima linea di comando mostra come creare un solido archivio 7z di file di programma (eseguibili). Utilizza la modalità multithreading, il che significa che sarà veloce su una macchina dual core.

7z a -t7z archive.7z *.exe *.dll -ms -mmt7z: name of executablea: archive command specified-t7z: use 7z file type (less compatible and smaller results)archive.7z: destination archive file*.exe: include all *.exe files in directory in new archive*.dll: include all *.dll files in new archive-ms: create solid archive (default)-mmt: multithread the operation (faster)

Crea l’archivio PPMd. PPMd è uno straordinario algoritmo per comprimere il testo ed è relativamente nuovo. Qui mostro un comando nel manuale di 7-Zip che comprime tutti i file di testo nella directory di lavoro. Crea un archivio PPMd.

Suggerimento: il comando è utile perché normalmente si desidera comprimere solo i file di testo con PPMd.

PPMd Compression

7z a -t7z archive.7z *.txt -m0=PPMd7z: executable name/patha: add command specified-t7z: use the 7z format (needed for PPMd)archive.7z: destination archive file*.txt: select all text files-mo=PPMd: compress with this algorithm

Switch o. Mostriamo lo switch “o” sulla linea di comando di 7-Zip. A volte non si vuole estrarre nella directory corrente. È qui che -o può essere utile. Usatelo per impostare la directory di destinazione.

7z x archive.zip -oC:\Doc7z: executable namex: extract archive with paths intactarchive.zip: archive to extract files from-oC:\Doc: extract all files to the Doc folder on the C: drive

Switch p. Possiamo usare lo switch “-p”, che si riferisce alla parola “password”. Questo è davvero utile quando si tratta di sicurezza e crittografia. È possibile specificare una password sulla linea di comando. La sintassi è un po’ strana.

7za a pw.7z *.txt -pSECRET7za: name and path of 7-Zip executablea: add to archivepw.7z: name of destination archive*.txt: add all text files to destination archive-pSECRET: specify the password "SECRET"

Apertura di archivi protetti da password. Il prossimo output della console mostra cosa succede quando si cerca di aprire un archivio protetto da password. La password qui è SECRET, che permetterà all’archivio di essere estratto.

C:\Users\Sam>7za x pw.7z7-Zip (A) 4.60 beta Copyright (c) 1999-2008 Igor Pavlov 2008-08-19Processing archive: pw.7zEnter password:

Crittografia dell’intestazione: Aggiungere -mhe per criptare le intestazioni. Il comando password si occuperà automaticamente delle intestazioni criptate.

Suggerimento: Ricorda, le intestazioni criptate nasconderanno i nomi dei file nel tuo archivio.

Altri interruttori. Qui diamo un’occhiata più da vicino ad altri interruttori che sono di uso limitato. Sono utili da conoscere, comunque, se avrai mai bisogno di usarli. Di solito puoi fare di meglio semplicemente usando i valori predefiniti che sono leggermente adattati alle tue esigenze.

Switch -ssc: Specifica la modalità sensibile alle maiuscole e alle minuscole. Il valore predefinito è -ssc- su Windows (insensibile). Il valore predefinito è -scc su Linux (sensibile).

Switch -ssw: Comprime i file bloccati. Puoi provare questo se hai problemi ad aprire i file.

Switch -w: Imposta la directory di lavoro. Puoi usarlo quando vuoi specificare cartelle temporanee.

Case-sensitive. Possiamo usare nomi di file non sensibili alle maiuscole nella linea di comando di 7-Zip. Per quelli di voi che usano sia Linux che Windows, l’opzione case-sensitive è utile. Mostrerò qui il mio esempio con qualche spiegazione.

7za.exe a archive.7z Z*.* -ssc7za.exe: 7-Zip command-line executable path and namea: archive commandarchive.7z: add files to this target archiveZ*.*: select only files whose first letter is a capital Z

Switch v. Si può usare lo switch “v” sulla linea di comando. Nella compressione dei dati, un volume è un segmento di un set di dati che è lungo un certo numero di byte. L’interruttore volume specifica la dimensione esatta in byte, kilobyte o megabyte.

Anche: Potete specificare volumi sequenziali con l’interruttore “v” sulla linea di comando 7za.exe.

Switch ao. L’interruttore “ao” ti permette di specificare se vuoi sovrascrivere i vecchi file. Fate attenzione: non potete ripristinare un file sovrascritto normalmente. Richiede un altro argomento. Fate il backup dei vostri dati copiando prima i file nel vostro file manager.

Switch -aoa: Questo interruttore sovrascrive tutti i file di destinazione. Usalo quando le nuove versioni sono preferite.

Switch -aos: Salta i file esistenti senza sovrascrivere. Usalo per i file in cui la prima versione è più importante.

Switch -aou: Evita collisioni di nomi. I nuovi file estratti avranno un numero aggiunto al loro nome. Dovrai occupartene in seguito.

Switch -aot: Rinomina i file esistenti. Questo non rinominerà i nuovi file, solo i vecchi già presenti.

Example of the switches7z x test.zip -aoa7z: use the 7-zip executablex: use the extract commandtest.zip: extract files from this archive-aoa: overwrite all existing files. risky!

File multipli. Questa sezione riguarda l’aggiunta di più file ad un archivio. Per aggiungere molti file ad un archivio, usa il comando “a” e il simbolo jolly *. Specifica il nome del file dell’archivio di destinazione e i file sorgente dopo.

Suggerimento: Leggi di più nella sezione riguardante il comando “a”, che si trova nella parte precedente di questa pagina.

Come posso aggiungere molti file con un’estensione specifica? Usa il comando “a” e il simbolo jolly *, ma specifica l’estensione dopo il carattere jolly. Per esempio, *.txt significa tutti i file di testo. Puoi usare il carattere jolly ovunque.

Come posso aggiungere molti file da un’intera sottodirectory? Specifica solo il nome della directory. Non è necessario usare un carattere jolly. Il manuale di 7-Zip mostra utilmente questo esempio. Specifica un’intera directory chiamata “subdir”.

7z a -tzip archive.zip subdir\7z: use executablea: add to archive-tzip: use zip compressionarchive.zip: create this archivesubdir\: source directory

Formati. Questa sezione risponde alle domande sulla scelta dei formati. Per prima cosa, per usare la compressione GZip, specifica l’opzione “-tgzip” per lo switch type. Questo è un ottimo modo per comprimere i file sul tuo server web per la compressione HTTP.

7-Zip DEFLATE

Come si usa BZip2? Puoi usare BZip2 specificando lo switch “-tbzip2”. Questo può essere combinato con qualsiasi livello di compressione nelle tabelle precedenti. Le diverse modalità di 7-Zip utilizzano automaticamente molte impostazioni diverse.

Come si usa il formato 7z? Specificando lo switch “-t7z” per il tipo. Oppure puoi semplicemente omettere l’opzione type e il formato predefinito sarà 7z. Questo formato offre i maggiori rapporti di compressione, ma non funziona in tutti i posti.

Prompts. Puoi impedire a 7-Zip di visualizzare i prompt. Usa lo switch -y. Questo presuppone una risposta affermativa a tutte le richieste. Usalo solo quando sei sicuro che non perderai alcun dato.

Domande. Ci sono molte altre possibilità e usi del programma 7-Zip sulla linea di comando sia in Windows che in Linux. Questa sezione risponde ad alcune domande che ho avuto mentre facevo questa ricerca, e anche ad alcune domande che potresti avere tu.

Perché non posso aggiornare il mio archivio? Probabilmente è un archivio solido. Gli archivi 7z sono di default archivi solidi – tutti i file sono compressi insieme. Cambia l’archivio per non essere solido se vuoi aggiornarlo. Cerca in questa pagina “solid”.

Posso specificare la directory di output? Sì, usa il comando “e” e combinalo con lo switch -o. La sintassi con -o è un po’ strana quindi mostrerò l’esempio dal file di aiuto di 7-Zip. Ecco come funziona.

7z e archive.zip -oC:\soft *.cpp -r7z: executablee: use extract commandarchive.zip: source archive you want to extract from-oC:\soft: the destination folder (-o is the switch and C:\soft is the argument)*.cpp: only extract cpp files (C++)-r: traverse all subdirectories

Come posso vedere cosa c’è dentro un archivio? Usate il comando “l” come mostrato sopra. Potresti voler usare “l” in un’utilità che esegui da una linea di comando per assicurarti che l’archiviazione batch funzioni correttamente.

Come posso escludere certi file? Vicino all’inizio abbiamo visto come aggiungere file basati su filtri, ma a volte vuoi escludere manualmente certi file. Usa lo switch -x, seguito immediatamente da un punto esclamativo e poi dal nome del file.

Così: Se vuoi escludere “file1.txt”, usa lo switch “-x!file1.txt”. Includere il trattino e l’esclamazione.

Come posso sostituire i file già presenti sul disco con nuovi file? Usando lo switch -ao, descritto sopra. Ci sono altre opzioni, e di solito è un’idea migliore usare una delle opzioni di rinomina (-aou o -aot).

Posso ignorare l’estrazione di file già presenti sul disco? Sì, specifica l’opzione -aos, che significa “saltare la sovrascrittura dei file”. Questo farà sì che 7za.exe non copi i file più recenti dall’archivio.

Nota: usa -aos se i tuoi file non cambiano nel tempo e la sovrascrittura sarebbe solo uno spreco.

Embed. È possibile incorporare 7-Zip in un programma Windows .NET utilizzando il tutorial nel mio articolo su .NET 7-Zip. Questo produce la stessa grande compressione ma nella tua interfaccia grafica. Il link mostra alcuni rapporti di compressione.

7-Zip Executable

Impostazioni interne. Puoi cambiare le impostazioni interne. Non è necessario farlo normalmente, in quanto sono impostate automaticamente. Raccomando di usare solo le impostazioni mx=0 (e 3, 5, 7, 9). Uno studio approfondito sarebbe affascinante.

Quali valori posso cambiare negli interni? Puoi cambiare i filtri di compressione, che cambiano il comportamento sui file eseguibili come *.exe e *.dll. Puoi abilitare la compressione dell’intestazione e la crittografia (-mhc=on e -mhe=on).

Suggerimento: la compressione dell’intestazione è abilitata di default. La crittografia deve essere esplicitamente abilitata.

AdvanceCOMP. Puoi usare AdvanceCOMP per migliorare i rapporti di compressione. Il miglioramento è spesso piccolo, meno dell’1%. 7-Zip e AdvanceCOMP usano lo stesso codificatore Deflate, ma AdvanceCOMP ha più opzioni ed è più preciso.

AdvanceCOMP

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *