Archivi e Compressione

Bentornato.
Nella lezione precedente hai imparato a controllare le connessioni di rete dal terminale.
Ora torniamo ai file.
Ma questa volta li impacchettiamo.
Perché a volte non vuoi inviare dieci file separati come un piccione confuso con documenti.
Vuoi un archivio solo.
Pulito. Portatile. Ordinato.
Molto adulto.
Cosa Imparerai
In questa lezione imparerai a:
- creare archivi con
tar; - estrarre file
.tar; - creare archivi compressi
.tar.gz; - estrarre archivi
.tar.gz; - creare file
.zip; - estrarre file
.zip; - capire la differenza tra archiviazione e compressione.
La Missione
La tua missione è semplice:
Creare una piccola cartella con file, impacchettarla in archivi, comprimerla, estrarla di nuovo e capire cosa sta succedendo.
Niente magia.
Solo file con una valigia.
Archivio vs Compressione
Un archivio raccoglie più file in un solo file.
La compressione rende i file più piccoli.
Non sono esattamente la stessa cosa.
Esempio:
.tar solo archivio
.tar.gz archivio + compressione
.zip archivio + compressione
Un file .tar è come mettere molti documenti in una cartella.
Un file .tar.gz è come mettere quella cartella in un sacchetto sottovuoto.
Linux lo adora.
Probabilmente troppo.
Creare una Cartella di Pratica
Vai nella tua cartella di pratica:
cd ~/terminal-practice
Se non esiste, creala:
mkdir -p ~/terminal-practice
cd ~/terminal-practice
Crea una cartella per questa lezione:
mkdir lesson9-archive
cd lesson9-archive
Crea alcuni file:
echo "Linux archive practice" > notes.txt
echo "Remember to extract carefully" > reminder.txt
echo "Compression is useful" > compression.txt
Controlla:
ls
Dovresti vedere:
compression.txt notes.txt reminder.txt
Bene.
Ora abbiamo qualcosa da impacchettare.
Creare un Archivio tar
Torna indietro di un livello:
cd ..
Crea un archivio .tar:
tar -cf lesson9-archive.tar lesson9-archive
Ora mostra i file:
ls
Dovresti vedere:
lesson9-archive
lesson9-archive.tar
L’archivio è stato creato.
Le opzioni significano:
-c = create
-f = file
Quindi il comando significa:
Crea un archivio chiamato
lesson9-archive.tardalla cartellalesson9-archive.
Molto logico.
Molto Linux.
Vedere Cosa C’è Dentro un Archivio tar
Per vedere il contenuto di un archivio .tar:
tar -tf lesson9-archive.tar
Le opzioni significano:
-t = lista il contenuto
-f = file
Dovresti vedere i file dentro l’archivio.
Questo è utile prima di estrarre.
Perché estrarre archivi sconosciuti alla cieca è il modo migliore per trasformare una cartella pulita in una zuppa digitale.
Estrarre un Archivio tar
Crea una cartella per l’estrazione:
mkdir extracted-tar
Estrai l’archivio lì:
tar -xf lesson9-archive.tar -C extracted-tar
Le opzioni significano:
-x = extract
-f = file
-C = estrai in questa directory
Ora controlla:
tree extracted-tar
Se tree non è installato, usa:
ls -R extracted-tar
Dovresti vedere di nuovo i tuoi file.
L’archivio ha funzionato.
Niente è esploso.
Una bellissima giornata.
Creare un Archivio Compresso tar.gz
Ora crea un archivio compresso:
tar -czf lesson9-archive.tar.gz lesson9-archive
Le opzioni significano:
-c = create
-z = compressione gzip
-f = file
.tar.gz è molto comune su Linux.
Puoi vedere anche .tgz.
È praticamente la stessa idea, solo più breve.
Perché a quanto pare anche le estensioni dei file hanno soprannomi.
Estrarre un Archivio tar.gz
Crea un’altra cartella:
mkdir extracted-targz
Estrai:
tar -xzf lesson9-archive.tar.gz -C extracted-targz
Opzioni:
-x = extract
-z = gzip
-f = file
-C = directory di destinazione
Controlla:
ls -R extracted-targz
Dovresti vedere la cartella e i file estratti.
Creare un Archivio zip
zip è comune quando condividi file con utenti Windows, macOS o chi pensa che .tar.gz sembri una diagnosi medica.
Crea un archivio zip:
zip -r lesson9-archive.zip lesson9-archive
L’opzione -r significa ricorsivo.
Include i file dentro la cartella.
Se zip non è installato, installalo.
Arch Linux
sudo pacman -S zip unzip
Ubuntu o Debian
sudo apt install zip unzip
Fedora
sudo dnf install zip unzip
Estrarre un Archivio zip
Crea una cartella:
mkdir extracted-zip
Estrai lo zip:
unzip lesson9-archive.zip -d extracted-zip
L’opzione -d significa directory di destinazione.
Controlla:
ls -R extracted-zip
I tuoi file dovrebbero essere lì.
Comandi Comuni per Archivi
Ecco i comandi più usati:
tar -cf archive.tar folder
tar -tf archive.tar
tar -xf archive.tar
tar -czf archive.tar.gz folder
tar -xzf archive.tar.gz
zip -r archive.zip folder
unzip archive.zip
Questi bastano per la maggior parte delle attività quotidiane.
Non devi memorizzare tutto subito.
Il tuo cervello merita pietà.
Errori Comuni
Estrarre nella cartella sbagliata
Prima di estrarre, controlla dove sei:
pwd
Poi mostra i file:
ls
Estrarre archivi in posti casuali è il modo in cui la home diventa un mercatino dell’usato.
Dimenticare -r con zip
Questo potrebbe non includere correttamente il contenuto della cartella:
zip archive.zip folder
Usa:
zip -r archive.zip folder
-r fa includere tutto quello che c’è dentro.
Confondere creazione ed estrazione
Creare:
tar -czf archive.tar.gz folder
Estrarre:
tar -xzf archive.tar.gz
Piccola differenza.
Grande risultato.
Uno impacchetta i file.
L’altro li spacchetta.
Non confonderli, a meno che tu non voglia fare della confusione uno stile di vita.
Pratica
Prova questo:
cd ~/terminal-practice
mkdir archive-practice
cd archive-practice
echo "File one" > one.txt
echo "File two" > two.txt
echo "File three" > three.txt
cd ..
tar -czf archive-practice.tar.gz archive-practice
mkdir test-extract
tar -xzf archive-practice.tar.gz -C test-extract
ls -R test-extract
Poi rispondi:
- Cosa fa
tar -cf? - Cosa fa
tar -xf? - Cosa significa
-z? - Cosa fa
zip -r? - Perché conviene controllare dove sei prima di estrarre?
Mini Sfida
Crea questa cartella:
backup-demo/
├── notes.txt
├── tasks.txt
└── config/
└── app.conf
Poi:
- Crea
backup-demo.tar. - Mostra il suo contenuto.
- Crea
backup-demo.tar.gz. - Crea
backup-demo.zip. - Estrai ogni archivio in una cartella separata.
- Controlla che tutti i file siano presenti.
Niente mouse.
Il mouse ormai è un oggetto decorativo.
Riassunto
Oggi hai imparato che:
- gli archivi raccolgono file in un solo file;
- la compressione rende i dati più piccoli;
.tardi solito è solo archivio;.tar.gzè archivio più compressione gzip;.zipè comune per condividere file;tar -cfcrea un archivio tar;tar -xfestrae un archivio tar;tar -czfcrea un archivio tar.gz compresso;tar -xzfestrae un archivio tar.gz;zip -rcrea un archivio zip;unzipestrae file zip.
Gli archivi sono ovunque in Linux.
Ora quando vedi .tar.gz, non devi andare in panico.
Non è un mostro.
È solo una valigia con una cintura intorno.
Prossima Lezione
Nella prossima lezione parleremo di variabili d’ambiente, alias e basi della shell.
È lì che il terminale inizia a ricordare cose per te.
Come un assistente gentile.
Ma con meno opinioni.