Skip to main content

Come comprimere i file usando la riga di comando di Linux

Automatic cable tie gun Autotool 2000 CPK (EN) update (Aprile 2024)

Automatic cable tie gun Autotool 2000 CPK (EN) update (Aprile 2024)
Anonim

Esistono diversi modi per comprimere i file utilizzando la riga di comando di Linux. Questo articolo include esempi pratici che mostrano come utilizzare il comando zip per compattare e organizzare i file all'interno del tuo file system.

I file zippati vengono utilizzati quando è necessario risparmiare spazio e copiare file di grandi dimensioni da un luogo a un altro.

Se si dispone di 10 file con dimensioni di 100 megabyte e che è necessario trasferirli su un sito ftp, il trasferimento potrebbe richiedere molto tempo a seconda della velocità del processore.

Se comprimi tutti e 10 i file in un unico archivio zippato e la compressione riduce le dimensioni del file a 50 MB per file, devi solo trasferire la metà dei dati.

Come creare un archivio di tutti i file in una cartella

Immagina di avere una cartella di canzoni con i seguenti file MP3:

Autostrada AC / DC per l'inferno
Night Prowler.mp3
Love hungry man.mp3
Scarica Hot.mp3
Cammina su di te.mp3
Autostrada per hell.mp3
Se vuoi il sangue, prendilo.mp3
Mostra in fiamme.mp3
Tocca troppo.mp3
Beating around the bush.mp3
Girls Got Rhythm.mp3

Questo semplice comando di Linux che illustra come creare un archivio di tutti i file nella cartella corrente denominata ACDC_Highway_to_Hell.zip:

zip ACDC_Highway_to_Hell *

Il testo scorre sullo schermo mostrando i file mentre vengono aggiunti.

Come includere file nascosti in un archivio

Il comando precedente va bene per l'archiviazione di tutti i file in una cartella ma include solo i file che non sono nascosti.

Non è sempre così semplice. Immagina di voler comprimere la tua cartella home in modo da poterla salvare su un'unità USB o un disco rigido esterno. La tua cartella home include i file nascosti.

Per comprimere tutti i file compresi i file nascosti in una cartella, eseguire il seguente comando:

zip a casa *. *

Questo crea un file chiamato home.zip con tutti i file all'interno della cartella home.

(Devi essere nella cartella home per far funzionare tutto questo). Il problema con questo comando è che include solo i file nella cartella home e non le cartelle, che ci porta al prossimo esempio.

Come archiviare tutti i file e le sottocartelle in un file zip

Per includere tutti i file e le sottocartelle all'interno di un archivio, eseguire il seguente comando:

zip -r casa.

Come aggiungere nuovi file a un archivio zip esistente

Se si desidera aggiungere nuovi file a un archivio esistente o aggiornare i file in un archivio, utilizzare lo stesso nome per il file di archivio quando si esegue il comando zip.

Ad esempio, immagina di avere una cartella musicale con quattro album e di creare un archivio chiamato music.zip da conservare come backup. Ora immagina una settimana dopo che hai scaricato due nuovi album. Per aggiungere i nuovi album al file zip, esegui semplicemente lo stesso comando zip della settimana precedente.

Per creare l'archivio musicale originale, esegui il seguente codice:

zip -r musica / home / tuo nome / musica /

Per aggiungere nuovi file all'archivio, eseguire di nuovo lo stesso comando.

Se il file zip contiene un elenco di file e uno dei file sul disco è stato modificato, il file modificato viene aggiornato nel file zip.

Come aggiornare i file esistenti in un archivio con zip

Se si dispone di un file zip che dovrebbe contenere sempre gli stessi nomi di file e si desidera aggiornare tale file con tutte le modifiche apportate a tali file, il -f interruttore ti aiuta a farlo.

Ad esempio, immagina di avere un file zippato con i seguenti file:

/ Home / nomeutente / documenti / file1
/ Home / nomeutente / documenti / file2
/ Home / nomeutente / documenti / file3
/ Home / nomeutente / documenti / file4
/ Home / nomeutente / documenti / file5
/ Home / nomeutente / documenti / file6

Ora immagina che durante la settimana hai aggiunto due nuovi file e modificato due file in modo che la cartella / home / nome / documenti ora assomigli a questo:

/ Home / nomeutente / documenti / file1
/ Home / nomeutente / documenti / file2
/ Home / nomeutente / documenti / file3
/ home / nomeutente / documenti / file4 (aggiornato)
/ home / nomeutente / documenti / file5 (aggiornato)
/ Home / nomeutente / documenti / file6
/ Home / nomeutente / documenti / file7
/ Home / nomeutente / documenti / file8

Quando si esegue il seguente comando, il file zip conterrà i file aggiornati (file4 e file5) ma file7 e file8 non verranno aggiunti.

zip zipfilename -f -r / home / nomeutente / documenti

Come eliminare i file da un archivio zip

Così hai creato un enorme file zip con centinaia di file e ora comprendi che ci sono quattro o cinque file nel file zip che non ti servono. Senza dover nuovamente comprimere tutti quei file, puoi semplicemente eseguire il comando zip con il comando -d cambia come segue:

zip zipfilename -d nome del file nell'archivio

Ad esempio, se si ha un file nell'archivio con il nome home / documents / test.txt, lo si elimina con questo comando:

zip zipfilename -d home / documents / test.txt

Come copiare i file da un file zip a un altro

Se hai file in un file zip e vuoi copiarli in un altro file zip senza prima estrarli e rezipparli, usa il -u interruttore.

Supponi di avere un file zip chiamato "variomusic.zip" con musica di vari artisti, uno dei quali è AC / DC. Puoi copiare i brani AC / DC dal vari file music.zip nel tuo file ACDC.zip usando il seguente comando:

zip variousmusic.zip -U --out ACDC.zip "Back_In_Black.mp3"

Il comando precedente copia il file "Back_In_Black.mp3" da variousmusic.zip a ACDC.zip.Se il file zip a cui stai copiando non esiste, viene creato.

Come utilizzare Pattern Matching e Piping per creare un archivio

Il passaggio successivo è davvero utile perché consente di utilizzare l'output di altri comandi per inserire file nel file zip. Supponi di voler creare un file chiamato lovesongs.zip, che contiene ogni canzone che contiene la parola amore nel titolo.

Per trovare i file con amore nel titolo è possibile utilizzare il seguente comando:

trova / home / tuo nome / nome-musicale * amore *

Il comando di cui sopra non è perfetto al 100 percento perché raccoglie anche parole come "trifoglio", ma tu hai l'idea. Per aggiungere tutti i risultati restituiti dal comando precedente a un file zip chiamato lovesongs.zip, esegui questo comando:

trova / home / nome / nome-musica * amore * | zip lovesongs.zip - @

Come creare un archivio diviso

Se si esegue il backup del computer ma l'unico supporto disponibile per il backup è un set di DVD vuoti, è possibile scegliere. Puoi continuare a zippare i file finché il file zip non è 4,8 gigabyte e masterizzare il DVD, oppure puoi creare qualcosa chiamato archivio diviso che continua a creare nuovi archivi in ​​un set dopo che raggiunge il limite specificato.

Per esempio:

zip mymusic.zip -r / home / myfolder / Music -s 670m

Come personalizzare la relazione sullo stato di avanzamento del processo di zipping

Ci sono vari modi per personalizzare l'output che appare mentre lo zipping è in corso.

Gli switch disponibili sono i seguenti:

  • -db = visualizza quanti byte sono stati compressi e quanti ne rimangono
  • -dc = visualizza il conteggio dei file compressi e quanti ne rimangono
  • -dd = visualizza punti per ogni 10 MB di file che ha zippato
  • -ds = imposta la frequenza di visualizzazione dei punti
  • -du = visualizza la dimensione non compressa di ogni file

Per esempio:

zip myzipfilename.zip -dc -r / home / musica

Come risolvere un file zip

Se hai un archivio zip che è rotto, puoi provare a risolverlo usando il -F comando e se fallisce, il FF comando.

Questo è utile se hai creato un archivio diviso usando il -S cambia, e hai perso uno dei file di archivio.

Ad esempio, prova prima questo:

zip -F myfilename.zip --out myfixedfilename.zip

e poi

zip -FF nomefile.zip --out myfixedfilename.zip

Come crittografare un archivio

Se si dispone di informazioni sensibili che si desidera memorizzare in un file zip, utilizzare -e comando per crittografarlo. Viene richiesto di immettere una password e di ripetere la password.

Per esempio:

zip myfilename.zip -r / home / wikileaks -e

Come mostrare ciò che sarà bloccato

Se sai che stai per creare un archivio di grandi dimensioni, assicurati che i file corretti verranno aggiunti al file zip. Puoi vedere i risultati attesi di un comando zip specificando il -sf interruttore.

Per esempio:

zip myfilename.zip -r / home / musica / -sf

Come testare un archivio

Dopo aver eseguito il backup dei file in un file zip, si è tentati di risparmiare spazio sul disco eliminando i file originali. Prima di farlo, è una buona idea verificare che il file zip funzioni correttamente.

Puoi usare il -T passare per verificare che il file zip sia valido.

Per esempio:

zip myfilename.zip -T

L'output da questo comando quando un archivio non è valido può sembrare qualcosa di simile:

  • avvertimento zip: manca la firma finale - probabilmente non è un file zip

Ricorda che puoi provare il comando -F per correggere i file zip danneggiati.

Vale la pena notare che -T può produrre falsi positivi in ​​quanto dice che un file zip è corrotto anche se quando lo si apre, è possibile estrarre tutti i file.

Come escludere i file

A volte si desidera escludere determinati file da un file zip. Ad esempio, se copi i file dal tuo telefono o fotocamera digitale, hai una miscela di video e immagini. Potresti desiderare di comprimere le foto su photos.zip e video su video.zip.

Ecco un modo per escludere i video durante la creazione di photos.zip

zip photos.zip -r / home / foto / -x * .mp4

Come specificare il livello di compressione

Quando comprimi i file in un file zip, il sistema decide se comprimere il file o semplicemente archiviarlo. I file MP3, per esempio, sono già compressi, quindi non ha molto senso comprimerli ulteriormente; di solito vengono memorizzati come avviene all'interno di un file zip.

Tuttavia, è possibile specificare un livello di compressione compreso tra 0 e 9 per comprimere ulteriormente un file. Questo richiede più tempo, ma può fare notevoli risparmi di spazio.

zip myfiles.zip -r / home -5