← Back to course

Archiwa i Kompresja

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ę:

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.tar z folderu lesson9-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:

  1. Co robi tar -cf?
  2. Co robi tar -xf?
  3. Co oznacza -z?
  4. Co robi zip -r?
  5. Dlaczego warto sprawdzić, gdzie jesteś przed rozpakowaniem?

Mini Wyzwanie

Stwórz taki folder:

backup-demo/
├── notes.txt
├── tasks.txt
└── config/
    └── app.conf

Potem:

  1. Stwórz backup-demo.tar.
  2. Pokaż jego zawartość.
  3. Stwórz backup-demo.tar.gz.
  4. Stwórz backup-demo.zip.
  5. Rozpakuj każde archiwum do osobnego folderu.
  6. Sprawdź, czy wszystkie pliki są na miejscu.

Bez myszy.

Mysz jest teraz obiektem dekoracyjnym.

Podsumowanie

Dzisiaj nauczyłeś się, że:

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.