Archiwa i Kompresja

Witaj ponownie.
W poprzedniej lekcji nauczyłeś się sprawdzać połączenia sieciowe z terminala.
Teraz wracamy do plików.
Ale tym razem będziemy je pakować.
Bo czasem nie chcesz wysyłać dziesięciu plików osobno jak zagubiony gołąb z dokumentami.
Chcesz jedno archiwum.
Czysto. Przenośnie. Porządnie.
Bardzo dorośle.
Czego Się Nauczysz
W tej lekcji nauczysz się:
- tworzyć archiwa za pomocą
tar; - rozpakowywać pliki
.tar; - tworzyć skompresowane archiwa
.tar.gz; - rozpakowywać archiwa
.tar.gz; - tworzyć pliki
.zip; - rozpakowywać pliki
.zip; - rozumieć różnicę między archiwizacją i kompresją.
Misja
Twoja misja jest prosta:
Stworzyć mały folder z plikami, spakować go do archiwów, skompresować, rozpakować ponownie i zrozumieć, co się dzieje.
Bez magii.
Po prostu pliki w walizce.
Archiwum vs Kompresja
Archiwum zbiera wiele plików w jeden plik.
Kompresja zmniejsza rozmiar danych.
To nie jest dokładnie to samo.
Przykład:
.tar tylko archiwum
.tar.gz archiwum + kompresja
.zip archiwum + kompresja
Plik .tar jest jak włożenie wielu dokumentów do jednej teczki.
Plik .tar.gz jest jak włożenie tej teczki do worka próżniowego.
Linux to kocha.
Prawdopodobnie za bardzo.
Stwórz Folder do Ćwiczeń
Przejdź do folderu ćwiczeń:
cd ~/terminal-practice
Jeśli nie istnieje, stwórz go:
mkdir -p ~/terminal-practice
cd ~/terminal-practice
Stwórz folder dla tej lekcji:
mkdir lesson9-archive
cd lesson9-archive
Stwórz kilka plików:
echo "Linux archive practice" > notes.txt
echo "Remember to extract carefully" > reminder.txt
echo "Compression is useful" > compression.txt
Sprawdź:
ls
Powinieneś zobaczyć:
compression.txt notes.txt reminder.txt
Dobrze.
Mamy co pakować.
Stwórz Archiwum tar
Przejdź poziom wyżej:
cd ..
Stwórz archiwum .tar:
tar -cf lesson9-archive.tar lesson9-archive
Teraz pokaż pliki:
ls
Powinieneś zobaczyć:
lesson9-archive
lesson9-archive.tar
Archiwum zostało utworzone.
Opcje znaczą:
-c = create
-f = file
Czyli komenda znaczy:
Stwórz plik archiwum
lesson9-archive.tarz folderulesson9-archive.
Bardzo logiczne.
Bardzo linuksowe.
Zobacz, Co Jest w Archiwum tar
Aby wyświetlić zawartość archiwum .tar:
tar -tf lesson9-archive.tar
Opcje znaczą:
-t = pokaż zawartość archiwum
-f = file
Powinieneś zobaczyć pliki w środku.
To przydatne przed rozpakowaniem.
Bo rozpakowywanie nieznanych archiwów na ślepo to sposób, w jaki czysty folder zamienia się w cyfrową zupę.
Rozpakuj Archiwum tar
Stwórz folder do rozpakowania:
mkdir extracted-tar
Rozpakuj tam archiwum:
tar -xf lesson9-archive.tar -C extracted-tar
Opcje znaczą:
-x = extract
-f = file
-C = rozpakuj do tej directory
Teraz sprawdź:
tree extracted-tar
Jeśli tree nie jest zainstalowane, użyj:
ls -R extracted-tar
Powinieneś znów zobaczyć swoje pliki.
Archiwum zadziałało.
Nic nie wybuchło.
Piękny dzień.
Stwórz Skompresowane Archiwum tar.gz
Teraz stwórz skompresowane archiwum:
tar -czf lesson9-archive.tar.gz lesson9-archive
Opcje znaczą:
-c = create
-z = kompresja gzip
-f = file
.tar.gz jest bardzo popularne w Linuxie.
Możesz też zobaczyć .tgz.
To praktycznie ta sama idea, tylko krócej.
Bo najwyraźniej nawet rozszerzenia plików potrzebują pseudonimów.
Rozpakuj Archiwum tar.gz
Stwórz kolejny folder:
mkdir extracted-targz
Rozpakuj:
tar -xzf lesson9-archive.tar.gz -C extracted-targz
Opcje:
-x = extract
-z = gzip
-f = file
-C = folder docelowy
Sprawdź:
ls -R extracted-targz
Powinieneś zobaczyć rozpakowany folder i pliki.
Stwórz Archiwum zip
zip jest popularny, gdy dzielisz się plikami z użytkownikami Windows, macOS albo z kimś, kto myśli, że .tar.gz wygląda jak diagnoza medyczna.
Stwórz archiwum zip:
zip -r lesson9-archive.zip lesson9-archive
Opcja -r oznacza recursive.
Dołącza pliki wewnątrz folderu.
Jeśli zip nie jest zainstalowany, zainstaluj go.
Arch Linux
sudo pacman -S zip unzip
Ubuntu lub Debian
sudo apt install zip unzip
Fedora
sudo dnf install zip unzip
Rozpakuj Archiwum zip
Stwórz folder:
mkdir extracted-zip
Rozpakuj zip:
unzip lesson9-archive.zip -d extracted-zip
Opcja -d oznacza folder docelowy.
Sprawdź:
ls -R extracted-zip
Twoje pliki powinny tam być.
Popularne Komendy Archiwów
Oto komendy, których będziesz używać często:
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
To wystarczy do większości codziennych zadań.
Nie musisz zapamiętać wszystkiego od razu.
Twój mózg zasługuje na litość.
Częste Błędy
Rozpakowanie w złym folderze
Przed rozpakowaniem sprawdź, gdzie jesteś:
pwd
Potem pokaż pliki:
ls
Rozpakowywanie archiwów w losowych miejscach to sposób, w jaki katalog domowy staje się wyprzedażą garażową.
Zapomnienie -r przy zip
To może nie dołączyć zawartości folderu poprawnie:
zip archive.zip folder
Użyj:
zip -r archive.zip folder
-r sprawia, że zip bierze wszystko ze środka.
Mylenie tworzenia i rozpakowywania
Tworzenie:
tar -czf archive.tar.gz folder
Rozpakowanie:
tar -xzf archive.tar.gz
Mała różnica.
Duży efekt.
Jedno pakuje pliki.
Drugie je rozpakowuje.
Nie myl ich, chyba że lubisz chaos jako styl życia.
Praktyka
Spróbuj:
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
Potem odpowiedz:
- Co robi
tar -cf? - Co robi
tar -xf? - Co oznacza
-z? - Co robi
zip -r? - Dlaczego warto sprawdzić, gdzie jesteś przed rozpakowaniem?
Mini Wyzwanie
Stwórz taki folder:
backup-demo/
├── notes.txt
├── tasks.txt
└── config/
└── app.conf
Potem:
- Stwórz
backup-demo.tar. - Pokaż jego zawartość.
- Stwórz
backup-demo.tar.gz. - Stwórz
backup-demo.zip. - Rozpakuj każde archiwum do osobnego folderu.
- Sprawdź, czy wszystkie pliki są na miejscu.
Bez myszy.
Mysz jest teraz obiektem dekoracyjnym.
Podsumowanie
Dzisiaj nauczyłeś się, że:
- archiwa zbierają pliki w jeden plik;
- kompresja zmniejsza dane;
.tarto zwykle samo archiwum;.tar.gzto archiwum plus kompresja gzip;.zipjest popularne do dzielenia się plikami;tar -cftworzy archiwum tar;tar -xfrozpakowuje archiwum tar;tar -czftworzy skompresowane archiwum tar.gz;tar -xzfrozpakowuje tar.gz;zip -rtworzy archiwum zip;unziprozpakowuje zipy.
Archiwa są wszędzie w Linuxie.
Teraz gdy zobaczysz .tar.gz, nie musisz panikować.
To nie potwór.
To tylko walizka z paskiem.
Następna Lekcja
W następnej lekcji poznamy zmienne środowiskowe, aliasy i podstawy shell.
To moment, w którym terminal zaczyna pamiętać rzeczy za ciebie.
Jak pomocny asystent.
Tylko z mniejszą liczbą opinii.