Komenda tar w Linux – jak pakować i rozpakowywać archiwa tar.gz, tar.bz2 i tar.xz

Komenda tar w Linux — jak pakować i rozpakowywać archiwa tar.gz, tar.bz2 i tar.xz

Krótka odpowiedź

tar (Tape Archive) to narzędzie wiersza poleceń w Linuksie i macOS, które łączy wiele plików i folderów w jedno archiwum (.tar), opcjonalnie kompresując je algorytmem gzip (.tar.gz), bzip2 (.tar.bz2) lub xz (.tar.xz). To odpowiednik ZIP-a w świecie Linuksa, będący standardem w administracji serwerów, wdrożeniach i backupie.

Najważniejsze komendy tar – pakowanie, rozpakowywanie, podgląd zawartości i zaawansowane opcje – z przykładami, które możesz skopiować bezpośrednio do terminala.

Najważniejsze flagi tar

Flaga Co robi Mnemonik
-c Create – utwórz archiwum C = Create
-x Extract – rozpakuj archiwum X = eXtract
-t List – pokaż zawartość bez rozpakowywania T = Table of contents
-z Kompresja gzip (.gz) Z = gZip
-j Kompresja bzip2 (.bz2) J = bzip2 (umowne)
-J Kompresja xz (.xz) J (wielkie) = xz
-v Verbose – wyświetl nazwy plików podczas operacji V = Verbose
-f File – nazwa pliku archiwum F = File

Flagi łączysz razem: -czvf = create + gzip + verbose + file1. W praktyce najwygodniej trzymać -f na końcu skrótu, bo zaraz po nim podajesz nazwę pliku archiwum.

Pakowanie – tworzenie archiwum

tar.gz (gzip – najczęstszy)

# Spakuj folder do tar.gz
tar -czvf archiwum.tar.gz folder/

# Spakuj wiele plików/folderów
tar -czvf backup.tar.gz plik1.txt plik2.txt folder1/ folder2/

# Spakuj bieżący katalog
tar -czvf backup.tar.gz .

Wynik: plik archiwum.tar.gz z kompresją gzip1. To najczęściej używany format w Linux – backupy, deployment, dystrybucja oprogramowania.

tar.bz2 (bzip2 – lepsza kompresja, wolniejsze)

tar -cjvf archiwum.tar.bz2 folder/

Bzip2 zwykle daje mniejsze pliki niż gzip, ale kompresuje wolniej. Używaj, gdy rozmiar jest ważniejszy niż czas (archiwizacja dużych plików na dysk).

tar.xz (xz – najlepsza kompresja, najwolniejsze)

tar -cJvf archiwum.tar.xz folder/

Xz zwykle daje najmniejsze pliki z trzech algorytmów, kosztem najdłuższego czasu kompresji. Używany do dystrybucji oprogramowania – np. jądro Linux jest dystrybuowane jako .tar.xz3.

Porównanie kompresji

Algorytm Rozszerzenie Flaga tar Kompresja Szybkość Kiedy używać
gzip .tar.gz / .tgz -z Dobra Szybka Domyślnie – backup, deploy, transfer
bzip2 .tar.bz2 -j Lepsza Średnia Archiwizacja (rozmiar > czas)
xz .tar.xz -J Najlepsza Wolna Dystrybucja oprogramowania
brak .tar (brak) Brak Natychmiastowa Łączenie plików bez kompresji

Rozpakowywanie – ekstrakcja archiwum

Rozpakuj tar.gz

tar -xzvf archiwum.tar.gz

Rozpakowuje do bieżącego katalogu. Jeśli archiwum zawiera folder wordpress/, po rozpakowaniu pojawi się ./wordpress/.

Rozpakuj do konkretnego katalogu

tar -xzvf archiwum.tar.gz -C /var/www/html/

-C zmienia katalog przed wykonaniem operacji1. Pliki wylądują w /var/www/html/ zamiast w bieżącym katalogu.

Rozpakuj tar.bz2

tar -xjvf archiwum.tar.bz2

Rozpakuj tar.xz

tar -xJvf archiwum.tar.xz

Rozpakuj bez znajomości kompresji (auto-detect)

tar -xvf archiwum.tar.gz
tar -xvf archiwum.tar.bz2
tar -xvf archiwum.tar.xz

Nowoczesne wersje tar (GNU tar od wersji 1.15) automatycznie wykrywają kompresję przy rozpakowywaniu – możesz pominąć -z/-j/-J i użyć samego -xvf. Tar sam rozpozna format po nagłówku pliku1.

Podgląd zawartości (bez rozpakowywania)

# Lista plików w archiwum
tar -tzvf archiwum.tar.gz

# Przykładowy output:
# drwxr-xr-x user/group 0 2026-04-20 12:00 wordpress/
# -rw-r--r-- user/group 405 2026-04-20 12:00 wordpress/index.php
# -rw-r--r-- user/group 3065 2026-04-20 12:00 wordpress/wp-config-sample.php
# ...

-t = list (table of contents). Pokazuje: uprawnienia, właściciel, rozmiar, datę, ścieżkę. Przydatne zanim rozpakujesz: sprawdzasz, czy archiwum zawiera to, czego oczekujesz.

Zaawansowane operacje

Rozpakuj tylko wybrane pliki

# Rozpakuj tylko wp-config.php z archiwum
tar -xzvf backup.tar.gz wordpress/wp-config.php

# Rozpakuj tylko pliki .sql
tar -xzvf backup.tar.gz --wildcards "*.sql"

Opcja --wildcards włącza dopasowywanie wzorców powłoki (*, ?, [...]) do nazw plików w archiwum1.

Wyklucz pliki/foldery podczas pakowania

# Spakuj wordpress/ ale bez wp-content/cache/
tar -czvf backup.tar.gz wordpress/ --exclude="wordpress/wp-content/cache"

# Wyklucz kilka folderów
tar -czvf backup.tar.gz wordpress/ \
 --exclude="wordpress/wp-content/cache" \
 --exclude="wordpress/wp-content/uploads/backups" \
 --exclude="*.log"

Przydatne przy backupach: wykluczasz cache, logi i stare backupy, żeby archiwum było mniejsze.

Dodaj pliki do istniejącego archiwum (bez kompresji)

# Działa TYLKO z nieskompresowanym .tar (nie .tar.gz!)
tar -rvf archiwum.tar nowy_plik.txt

-r (append) dopisuje pliki na koniec archiwum. Nie działa z archiwami skompresowanymi gzip/bzip2/xz1 – skompresowane archiwa trzeba rozpakować, dodać plik i spakować ponownie.

Pokaż postęp (progress bar)

# Z pv (pipe viewer) – jeśli zainstalowany
tar -cf - folder/ | pv | gzip > archiwum.tar.gz

# Lub verbose (-v) – wyświetla każdy plik
tar -czvf archiwum.tar.gz folder/

Praktyczne scenariusze

1. Backup WordPressa na serwerze

cd /var/www
tar -czvf /backups/wordpress-$(date +%Y-%m-%d).tar.gz html/ \
 --exclude="html/wp-content/cache" \
 --exclude="html/wp-content/debug.log"

Tworzy: /backups/wordpress-2026-04-20.tar.gz. Z datą w nazwie + bez cache’a i logów.

2. Przeniesienie strony między serwerami

# Na starym serwerze:
tar -czvf site-backup.tar.gz /var/www/html/

# Przenieś na nowy (scp lub wget):
scp site-backup.tar.gz user@new-server:/var/www/

# Na nowym serwerze:
cd /var/www
tar -xzvf site-backup.tar.gz

Szybciej niż kopiowanie tysięcy plików przez FTP (jedno duże archiwum vs 10 000 małych plików). Komenda scp kopiuje pliki przez to samo połączenie co SSH, więc działa wszędzie tam, gdzie masz dostęp po SSH.

3. Pobranie i instalacja oprogramowania

# Pobierz
wget https://wordpress.org/latest.tar.gz

# Rozpakuj
tar -xzvf latest.tar.gz -C /var/www/html/

# Usuń archiwum
rm latest.tar.gz

tar na macOS

MacOS ma wbudowany tar (BSD tar, bsdtar) – działa podobnie jak GNU tar na Linux, z drobnymi różnicami:

  • --exclude musi być przed nazwą archiwum i innymi opcjami – bsdtar parsuje argumenty ściślej niż GNU tar, gdzie kolejność jest zwykle dowolna2
  • macOS tar może dodawać pliki ._ (resource forks) – żeby tego uniknąć: COPYFILE_DISABLE=1 tar -czvf archiwum.tar.gz folder/2
  • xz może nie być domyślnie zainstalowany – brew install xz

tar vs zip – kiedy które

Cecha tar (.tar.gz) zip
Platforma Linux/macOS (natywne) Windows (natywne), Linux (zainstaluj)
Uprawnienia plików Zachowuje (chmod, owner) Nie zachowuje
Symlinki Zachowuje Nie zachowuje
Kompresja Cały archiwum naraz (lepsza ratio) Każdy plik osobno
Ekstrakcja pojedynczego pliku Wolna (musi przeczytać do pozycji) Szybka (indeks na końcu)
Najczęstsze użycie Serwery Linux, backup, deployment Wysyłanie plików mailem, Windows

Zasada: na serwerze Linux → tar.gz (zachowuje uprawnienia, symlinki). Wysyłasz komuś pliki (szczególnie na Windows) → zip. Przy okazji uprawnień: jeśli nie wiesz, jak je czytać i zmieniać, zobacz chmod – uprawnienia plików w Linux.

Najczęściej zadawane pytania

Co oznacza .tgz?

.tgz to skrót od .tar.gz – to ten sam format, tylko krótsza nazwa. Historycznie wiąże się to z ograniczeniem starych systemów (np. DOS) do trzech znaków rozszerzenia pliku, które nie mieściło pełnego .tar.gz.

Jak sprawdzić rozmiar archiwum przed rozpakowaniem?

ls -lh archiwum.tar.gz pokazuje rozmiar skompresowany. Przybliżony rozmiar po rozpakowaniu policzysz z listy plików: tar -tzvf archiwum.tar.gz | awk '{s+=$3} END {print s/1024/1024 " MB"}'.

Mogę rozpakować tar.gz na Windows?

Tak. 7-Zip obsługuje tar.gz (dwuetapowa ekstrakcja: .gz → .tar → pliki). Windows 11 (od wersji 23H2) obsługuje część formatów archiwów, w tym tar, natywnie w Eksploratorze plików. Można też zainstalować WSL i użyć komendy tar jak na Linux.

tar: Cannot open: Permission denied

Nie masz uprawnień do katalogu docelowego. Rozwiązanie: sudo tar -xzvf archiwum.tar.gz -C /var/www/ lub zmień katalog docelowy na taki, do którego masz dostęp.

Źródła

Zweryfikowano: wrzesień 2026

Flagi i przykłady komend sprawdziliśmy w oficjalnej dokumentacji GNU tar i w man-page tar(1).

  1. GNU tar ManualDokumentacjaGNU Projectgnu.org
  2. tar(1) – Linux manual pageStandardman7.orgman7.org
  3. The Linux Kernel Archives – lista wydań źródełRejestrkernel.orgkernel.org
Picture of Tomasz Zieliński
Tomasz Zieliński

Tomasz zajmuje się tematyką SEO, sztucznej inteligencji i automatyzacji pracy w marketingu internetowym. W swoich artykułach analizuje zmiany w algorytmach wyszukiwarek, rozwój narzędzi AI oraz nowe sposoby tworzenia i optymalizacji treści. Interesuje go przede wszystkim to, jak technologia wpływa na codzienną pracę specjalistów SEO, marketerów i twórców internetowych.

Facebook
Twitter
LinkedIn
Pinterest

Najnowsze Wpisy

Śledź nas