Nella guida precedente, abbiamo appreso come archiviare file e directory utilizzando il comando tar in Linux. Ora faremo lo stesso, ma usando Zip un Decomprimi programmi. L'applicazione zip è sia un archiviatore che un'utilità di compressione, quindi possiamo utilizzarla per archiviare, comprimere e decomprimere file e directory in sistemi operativi simili a Linux e Unix. Questa applicazione zip è compatibile con Windows e altre applicazioni zip del sistema operativo. Tuttavia, gzip e bzip2 sono le applicazioni di compressione predominanti. Ora vediamo come archiviare file e directory in Linux usando Zip programma.
Archivia file e directory in Linux utilizzando il programma Zip
Il programma Zip viene preinstallato con alcune distribuzioni Linux. Nel caso in cui non fosse disponibile, puoi installarlo utilizzando il gestore di pacchetti predefinito della distribuzione.
Su Arch Linux e varianti:
$ sudo pacman -S zip unzip
Su RHEL, CentOS, Fedora:
$ sudo yum install zip unzip
Su Debian, Ubuntu, Linux Mint:
$ sudo apt-get install zip unzip
Su SUSE/openSUSE:
$ sudo zypper install zip unzip
Vediamo ora alcuni esempi.
Creazione di un nuovo archivio
Per archiviare un gruppo di file in uno, fai semplicemente:
$ zip file.zip file1 file2 file3
L'output di esempio sarebbe:
adding: file1 (stored 0%) adding: file2 (stored 0%) adding: file3 (stored 0%)
Qui creiamo un archivio chiamato file.zip da file1 , file2 e file3 . Non è necessario utilizzare il .zip estensione alla fine del nome del file. L'ho aggiunto per motivi di chiarezza.
Allo stesso modo, per creare un archivio di una directory, eseguire:
$ zip directory.zip ostechnix/ adding: ostechnix/ (stored 0%)
Qui ho creato un archivio chiamato directory.zip dell'otechnix cartella. Tieni presente che questo aggiunge solo la directory principale (cioè) all'archivio. Per archiviare tutte le sottodirectory in modo ricorsivo, usa -r segnala come sotto.
$ zip -r directory.zip ostechnix/ adding: ostechnix/ (stored 0%) adding: ostechnix/file.txt (deflated 67%) adding: ostechnix/audio.mp3 (deflated 6%) adding: ostechnix/image.jpg (deflated 3%)
A differenza dell'utilità tar, il programma zip crea un archivio e lo comprime ove possibile. Ma tar è un archiviatore, non uno strumento di compressione.
Crea un archivio di più directory e/o file alla volta
A volte, potrebbe essere necessario creare un archivio da un gruppo di file e cartelle. Per farlo, esegui:
$ zip -r directory.zip ostechnix/ file1 file2 file3 adding: example/ (stored 0%) adding: example/Stephen.jpg (deflated 3%) adding: file1 (stored 0%) adding: file2 (stored 0%) adding: file3 (stored 0%)
Il comando precedente crea un archivio denominato directory.zip da otechnix directory e il gruppo di file, ovvero file2 , file2 , file3 .
Ora lascia che ti mostri un altro esempio.
$ zip directory.zip file4 adding: file4 (stored 0%)
Hai notato? Ho specificato l'archivio esistente, ma il programma zip ha aggiornato il contenuto del file di archivio esistente senza sostituirlo. Quindi, se hai specificato un archivio esistente, viene aggiornato anziché sostituito. In parole povere, l'archivio esistente viene preservato, viene aggiunto il nuovo file4. Questo è un notevole vantaggio del programma zip rispetto all'utilità tar.
Estrai archivi
Estrarre archivi è semplice come creare archivi. Per estrarre un archivio, fai semplicemente:
$ unzip directory.zip
L'output di esempio sarebbe:
Archive: directory.zip creating: ostechnix/ inflating: ostechnix/file.txt inflating: ostechnix/audio.mp3 inflating: ostechnix/image.jpg extracting: file1 extracting: file2 extracting: file3 extracting: file4
Puoi anche estrarre selettivamente un file o una cartella specifica dalla directory. Ad esempio, il comando seguente estrae file4 dall'archivio directory.zip .
$ unzip directory.zip file4 Archive: directory.zip extracting: file4
Elenca il contenuto di un archivio senza estrarlo
Per elencare il contenuto di un archivio senza estrarlo effettivamente, usa -l bandiera.
$ unzip -l directory.zip Archive: directory.zip Length Date Time Name --------- ---------- ----- ---- 0 2018-03-29 15:55 ostechnix/ 1286 2018-01-11 12:16 ostechnix/file.txt 8073033 2018-03-29 14:03 ostechnix/audio.mp3 15240 2018-03-29 14:45 ostechnix/image.jpg 5 2018-03-29 15:58 file1 5 2018-03-29 15:58 file2 5 2018-03-29 15:58 file3 5 2018-03-29 16:37 file4 --------- ------- 8089579 8 files
Questo può essere utile quando vuoi trovare ed estrarre un file specifico invece di estrarre l'intero archivio.
Creazione di un archivio crittografato
L'altra caratteristica degna di nota del comando zip è che ci consente di creare un archivio crittografato, quindi gli utenti devono inserire la password per estrarre o visualizzare il contenuto dell'archivio.
Per creare un archivio crittografato, utilizza -e bandiera.
$ zip -e -r directory.zip ostechnix/ file1 file2 file3 file4 Enter password: Verify password: adding: ostechnix/ (stored 0%) adding: ostechnix/file.txt (deflated 67%) adding: ostechnix/audio.mp3 (deflated 6%) adding: ostechnix/image.jpg (deflated 3%) adding: file1 (stored 0%) adding: file2 (stored 0%) adding: file3 (stored 0%) adding: file4 (stored 0%
Quando si estrae o si visualizza il contenuto dell'archivio, è necessario inserire la password corretta.
$ unzip directory.zip Archive: directory.zip [directory.zip] ostechnix/file.txt password:
Crea un archivio in più parti
A volte, potrebbe essere necessario condividere un file di archivio su Internet e quel file di archivio stesso potrebbe essere troppo grande per essere inviato su Internet o LAN. In questi casi, possiamo creare archivi multipar di piccole dimensioni e inviarli su Internet.
Per archiviare una directory in più parti più piccole, ad esempio 3 MB ciascuno, lo facciamo:
$ zip -r -s 3m archive.zip ostechnix/
Questo comando creerà file di archivio di dimensioni 3 MB come archive.z01 , archivio.z02 , archive.z03 .... e archive.zip . Devi inviare questi file al destinatario. Quando si estraggono questi file di archivio, tutti i contenuti verranno estratti in un'unica cartella denominata otechnix .
Per dividere l'archivio in GB, usa "g" come di seguito:
$ zip -r -s 3g archive.zip ostechnix/
Crea archivi di altri programmi
Zip può accettare input standard, quindi è possibile creare un archivio di altri programmi. Il comando seguente invia l'output del comando "ls" come input al comando zip.
$ ls -l Documents/ | zip ls-documents.zip - adding: - (deflated 56%)
Ricorda qui ls-documents.zip è l'archivio del comando "ls". Quindi, non visualizzerà i contenuti dell'archivio usando -l interruttore.
Invece, puoi visualizzarne il contenuto usando il comando:
$ unzip -p ls-documents.zip | less
Qui, -p fa riferimento al tubo.
Comprime gli archivi con il tasso di compressione
Per archiviare una directory e il suo contenuto con il più alto livello di compressione [9]:
$ zip -r -9 archive.zip ostechnix/
Zip supporta tre livelli di compressione come indicato di seguito.
- 1 – Il più veloce (peggiore)
- 9 – Più lento (migliore o più alto)
- 6 – Livello predefinito
Escludi file o cartelle durante la creazione di archivi
Possiamo escludere file o sottodirectory indesiderati durante la creazione di un archivio. Per farlo, usa -x segnala come di seguito:
$ zip -r directory.zip ostechnix/ -x ostechnix/image.jpg
Il comando precedente creerà un archivio della directory ostechnix, ma escluderà image.jpg file dall'archivio.
Puoi verificare il contenuto senza estrarre il file di archivio usando il comando seguente.
$ unzip -l directory.zip
Elimina file da un archivio esistente
Potresti aver dimenticato di escludere alcuni elementi indesiderati durante la creazione degli archivi. Nessun problema! Puoi eliminare quei file anche dopo aver creato l'archivio.
Per eliminare i file indesiderati da un archivio esistente, utilizza -d flag come mostrato di seguito.
$ zip -d directory.zip "ostechnix/file.txt" deleting: ostechnix/file.txt
Allo stesso modo, per eliminare un gruppo dello stesso tipo di file, ad esempio .txt uso di file:
$ zip -d directory.zip "ostechnix/*.txt"
E per ora è tutto. Abbiamo solo graffiato la superficie dei comandi zip/unzip. Puoi fare molto di più usando questi programmi. Per maggiori dettagli, fare riferimento alle pagine man.
$ man zip
$ man unzip