GNU/Linux >> Linux Esercitazione >  >> Linux

Come archiviare file e directory in Linux [Parte 2]

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

Linux
  1. Come comprimere file e directory su Linux (con esempi)

  2. Come archiviare file e directory in Linux [Parte 1]

  3. Come archiviare e comprimere file su Linux

  4. Come comprimere più file su Linux

  5. Scopri come comprimere e decomprimere file in Linux ed essere uno Zip Master

Come eseguire il backup di file e directory utilizzando Rsync in Linux

Come rinominare file e directory in Linux

Come copiare file e directory nel terminale Linux

Come comprimere file e cartelle in Linux

Come eliminare file e directory utilizzando la riga di comando di Linux

Come comprimere un file in Linux