Add files via upload

This commit is contained in:
fenix-soft 2024-06-09 10:14:22 +02:00 committed by GitHub
parent 82bb222c91
commit a1606efa6d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 28 additions and 9 deletions

View File

@ -1,13 +1,13 @@
# Come utilizzare il comando gzip in Linux # Come utilizzare il comando gzip in Linux (guida rapida)
***gzip*** è una delle utility di compressione dati più usata, sopratutto per la sua retro-compatibilità per lo scambio dati in vecchi sistemi operativi, server e reti http, sistemi embedded dove richiede poche risorse, sia in cpu che di memoria. ***gzip*** è una delle utility di compressione dati più usata, sopratutto per la sua retro-compatibilità per lo scambio dati in vecchi sistemi operativi, server e reti http, sistemi embedded dove richiede poche risorse, sia in cpu che di memoria.
In ambiti dove sono richiesti tempi di compressione e decompressione rapidi e facilmente implementabili. Esistono chip hardware che comprimono o decomprimono in tale formato (gzip, deflate). Il programma è utilizzato come libreria in molteplici software, git, browser-web, gimp, ecc. In ambiti dove sono richiesti tempi di compressione e decompressione rapidi e facilmente implementabili. Esistono chip hardware che comprimono o decomprimono in tale formato (gzip, deflate). Il programma è utilizzato come libreria in molteplici software, git, browser-web, gimp, ecc.
Il progetto, nasce nel 1992, ad opera dei programmatori Jean-Loup Gailly e Mark Adler, che si erano prefissati il compito di sviluppare unalternativa convincente a **compress**, programma scritto per Unix, che utilizava allora un algoritmo coperto da brevetto (LZW). Il progetto, nasce nel 1992, ad opera dei programmatori Jean-Loup Gailly e Mark Adler, che si erano prefissati il compito di sviluppare unalternativa convincente a **compress**, programma scritto per Unix, che utilizava allora un algoritmo coperto da brevetto (LZW).
Il programma gzip, che è la forma abbreviata di “**GNU zip**”, si basa sul algoritmo Deflate, utilizzabile liberamente e che consiste in una variazione del processo di compressione dei dati **LZ77** (Lempel-Ziv 77), e sulla codifica di Huffman. Proprio con laiuto di queste tecniche gzip scansiona i file in cerca di stringhe di dati doppie o ricorrenti (sequenze di caratteri). Nel caso in cui il programma incontri determinate sequenze ricorrenti, queste vengono sostituite attraverso un archivio sulla prima stringa che compare, dove la lunghezza di una tale sequenza è solitamente limitata a 32 Kbyte (dizionario di finestra scorrevole) per poi essere processate con la codifica di Huffman. Se una sequenza non si presenta nei 32 kbyte precedenti, allora il file verrà salvato senza compressione dati. Il procedimento è limitato ai singoli file, perciò per cartelle di file è necessario un programma di archiviazione al fine di creare dei cosiddetti **archivi compressi**, con estensioni .tar.gz o .tgz. Il programma gzip, che è la forma abbreviata di “**GNU zip**”, si basa sul algoritmo **Deflate**, (pkzip, zip) utilizzabile liberamente e che consiste in una variazione del processo di compressione dei dati **LZ77** (Lempel-Ziv 77), e sulla codifica di Huffman. Proprio con laiuto di queste tecniche gzip scansiona i file in cerca di stringhe di dati ricorrenti. Nel caso in cui il programma incontri determinate sequenze ricorrenti, queste vengono sostituite attraverso un dizionario a finestra scorrevole, sulla prima stringa che compare, dove la lunghezza di una tale sequenza è solitamente limitata a 32 Kbyte, per poi essere processate con la codifica di Huffman. Se una sequenza non si presenta nei 32 kbyte precedenti, allora il file verrà salvato senza compressione dati. Il procedimento è limitato ai singoli file, perciò per cartelle di file è necessario un programma di archiviazione esterno al fine di creare dei cosiddetti **archivi compressi**, con estensioni .tar.gz o .tgz.
Il programma gzip è stato originariamente sviluppato per la piattaforma GNU compatibile con UNIX, ma oggi è utilizzabile su quasi ogni piattaforma, fin quanto la licenza GPL scelta per il progetto venga rispettata. Ad esempio sui sistemi Linux, questo strumento per la compressione dei dati è solitamente installato automaticamente o in alternativa è contenuto nel sistema di gestione dei pacchetti, pronto per essere installato. Il programma gzip è stato originariamente sviluppato per la piattaforma **GNU Linux**, ma oggi è utilizzabile su quasi ogni piattaforma, fin quanto la licenza GPL scelta per il progetto venga rispettata. Ad esempio sui sistemi Linux, questo strumento per la compressione dei dati è solitamente installato automaticamente o in alternativa è contenuto nel sistema di gestione dei pacchetti, pronto per essere installato.
Oltre alle varie edizioni per i sistemi operativi più datati, esistono anche versioni per macOS e Windows, scaricabili sulla [pagina ufficiale di gzip](https://www.gzip.org/). Oltre alle varie edizioni per i sistemi operativi più datati, esistono anche versioni per macOS e Windows, scaricabili sulla [pagina ufficiale di gzip](https://www.gzip.org/).
Inoltre la compressione di gzip è utilizzata da anni da programmi per la gestione dei server web come ad esempio Apache, anche se questa funzione non viene sempre utilizzata, e dai browser moderni, che sono in grado di interpretare i file compressi e di decomprimerli durante il rende-ring dei siti web. Inoltre la compressione di gzip è utilizzata da anni da programmi per la gestione dei server web come ad esempio Apache, anche se questa funzione non viene sempre utilizzata, e dai browser moderni, che sono in grado di interpretare i file compressi e di decomprimerli durante il rende-ring dei siti web.
@ -16,6 +16,8 @@ Il programma gzip mostra il meglio di sé nell'ambito dello sviluppo web: una vo
*In questa mini guida impareremo assieme ad utilizzare questo pratico strumento.* *In questa mini guida impareremo assieme ad utilizzare questo pratico strumento.*
---
## Usare il comando gzip su terminale Linux ## Usare il comando gzip su terminale Linux
Per utilizzare il comando **gzip**, dovrai seguire la sintassi indicata: Per utilizzare il comando **gzip**, dovrai seguire la sintassi indicata:
@ -65,7 +67,7 @@ La seguente tabella fornisce i comandi gzip più importanti:
|Opzione|Descrizione| |Opzione|Descrizione|
|-------|-----------| |-------|-----------|
|**-1 … -9**|Definisce il grado di compressione (1-9), dove il valore 1 corrisponde al tipo di compressione più basso e veloce, mentre il valore 9 equivale a quello migliore ma che richiede un maggior tempo; il valore standard preimpostato è 5| |**-1 … -9**|Definisce il grado di compressione (1-9), dove il valore 1 corrisponde al tipo di compressione più basso e veloce, mentre il valore 9 equivale a quello migliore ma che richiede un maggior tempo; il valore standard preimpostato è 5|
|**-r **|Ricerca ricorsivamente la cartella (incluse tutte le sottocartelle) e comprime o decomprime tutti i file contenuti al suo interno| |**-r**|Ricerca ricorsivamente la cartella (incluse tutte le sottocartelle) e comprime o decomprime tutti i file contenuti al suo interno|
|**-f**|Forza la compressione gzip e sovrascrive, in caso sia necessario, i file già presenti con lo stesso nome| |**-f**|Forza la compressione gzip e sovrascrive, in caso sia necessario, i file già presenti con lo stesso nome|
|**-d**|Decomprime i file selezionati nella cartella attuale| |**-d**|Decomprime i file selezionati nella cartella attuale|
|**-k**|Impedisce la cancellazione del file originale| |**-k**|Impedisce la cancellazione del file originale|
@ -81,9 +83,9 @@ per maggiori informazioni consultare il manuale del programma con il comando:
## Come comprimere (gzip) una directory in Linux ## Come comprimere con gzip una directory in Linux
Come accennato precedentemente **gzip** opera unicamente su un singolo file per volta, quindi in parole spicce è impossibilitato a comprimere intere directory di file, per fare ciò si usa, prima archiviare con **tar** la directory/cartella da comprimere per poi comprimerla in un secondo momento con gzip. Come accennato precedentemente **gzip** opera unicamente su un singolo file per volta, quindi in parole spicce è impossibilitato a comprimere intere directory di file in un unico file compresso, per fare ciò si usa prima archiviare con **tar** la directory/cartella da comprimere, per poi comprimerla in un secondo momento con gzip.
gzip archivio.tar gzip archivio.tar
@ -91,7 +93,7 @@ avremo un file chiamato:
archivio.tar.gz archivio.tar.gz
è possibile fare questa operazione direttamente con un unico comando tar simile a questo: questo approccio potrebbe risultare scomodo (comandi archivio tar + comandi gizp), perché effettivamente andremo a scrivere una miriade di comandi, fortunatamente è possibile fare questa operazione direttamente con un unico comando tar simile a questo:
tar -zcvf nome_archivio cartella_da_comprimere tar -zcvf nome_archivio cartella_da_comprimere
@ -112,6 +114,23 @@ per estrarlo:
tar -zxvf archivio_documenti.tar.gz tar -zxvf archivio_documenti.tar.gz
se il file presenta estensione tar.gz tar è in grado di riconoscerlo come archivio compresso gzip e si può omettere il parametro z in fase di estrazione: se il file presenta estensione "tar.gz" **tar** è in grado di riconoscerlo come "archivio compresso gzip" e si può omettere il parametro **'z'** in fase di estrazione:
tar -xvf archivio_documenti.tar.gz tar -xvf archivio_documenti.tar.gz
con GNU TAR è anche possibile passare parametri opzionali al "compressore", supponiamo ad esempio di voler comprimere e archiviare la solita cartella documenti, questa volta contenente ad esempio solo file di testo semplice (hanno un alto rapporto di compressione) e di voler utilizzare un grado di compressione di gzip di tipo -9 "migliore" a discapito del tempo, avremo un comando simile a questo:
tar -c -I 'gzip -9' -vf archivio_documenti.tar.gz documenti
le opzioni del comando **tar** utilizzato in precedenza hanno il seguente significato:
-c dice a tar di creare archivio di file non compresso
-I indica il programma di compressione e i parametri da usare
-v modalità dettagliata, mostra quali file vengono elaborati
-f l'output file
per ulteriori combinazioni di comandi fare riferimento al manuale di GNU TAR.
man tar