tar (Tape Archive) to narzędzie wiersza poleceń w Linux i macOS, które łączy wiele plików i folderów w jeden plik archiwum (.tar), opcjonalnie kompresując go algorytmem gzip (.tar.gz), bzip2 (.tar.bz2) lub xz (.tar.xz). To odpowiednik ZIP w świecie Linux — z tą różnicą, że tar jest standardem w administracji serwerów, deployment i backup.
W tym poradniku pokazuję 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.
Spis treści
ToggleNajważ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 (ZAWSZE ostatnia!) | F = File |
Flagi łączysz razem: -czvf = create + gzip + verbose + file. Kolejność nie ma znaczenia, ale -f musi być ostatnia (bo po niej idzie nazwa pliku).
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ą gzip. 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 daje mniejsze pliki niż gzip (o 10–20%), ale jest 2–3x wolniejszy. 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 daje najmniejsze pliki z trzech algorytmów, ale jest najwolniejszy. Używany do dystrybucji oprogramowania (np. kernel Linux jest dystrybuowany jako .tar.xz).
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 = zmień katalog docelowy. 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 automatycznie wykrywają kompresję — możesz pominąć -z/-j/-J i użyć samego -xvf. tar sam rozpozna format.
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"
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. Nie działa z gzip/bzip2/xz — 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).
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) — działa tak samo jak GNU tar na Linux, z drobnymi różnicami:
--excludemusi być przed nazwą archiwum (na Linux kolejność dowolna)- macOS tar może dodawać pliki
._(resource forks) — żeby tego uniknąć:COPYFILE_DISABLE=1 tar -czvf archiwum.tar.gz folder/ - 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.
Najczęściej zadawane pytania
Co oznacza .tgz?
.tgz = .tar.gz — to samo, krótsza nazwa. Historycznie: systemy z limitem 3 znaków rozszerzenia (DOS) nie mogły mieć .tar.gz, więc powstało .tgz.
Jak sprawdzić rozmiar archiwum przed rozpakowaniem?
ls -lh archiwum.tar.gz # rozmiar skompresowany
tar -tzvf archiwum.tar.gz | awk '{s+=$3} END {print s/1024/1024 " MB"}' # rozmiar po rozpakowaniu (przybliżony)
Mogę rozpakować tar.gz na Windows?
Tak — 7-Zip obsługuje tar.gz (dwukrotna ekstrakcja: .gz → .tar → pliki). Windows 11 (23H2+) obsługuje tar natywnie w Eksploratorze. Lub: zainstaluj WSL i użyj 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.
Podsumowanie
tar to standardowe narzędzie archiwizacji w Linux. Najważniejsze komendy: tar -czvf archiwum.tar.gz folder/ (spakuj), tar -xzvf archiwum.tar.gz (rozpakuj), tar -tzvf archiwum.tar.gz (podgląd). Kompresja: -z = gzip (domyślne, szybkie), -j = bzip2 (lepsze, wolniejsze), -J = xz (najlepsze, najwolniejsze). Dla backupów i deploymentu WordPress na serwerze: tar.gz jest standardem — zachowuje uprawnienia, symlinki i jest szybsze niż ZIP przy wielu plikach.






