tar în Linux / Bash

Arhivare și pachete POSIX / GNU Tar

Împachetează mai multe fișiere într-o singură arhivă (tarball) și o comprimă opțional cu gzip sau bzip2.

Sintaxă comandă
tar [opțiuni] fișier.tar [fișiere_sau_directoare...]

Ce face tar

Numele tar provine de la tape archive (arhivă pe bandă magnetică). În UNIX și Linux, arhivarea (unirea mai multor fișiere într-unul singur, păstrând permisiunile și structura de directoare) este separată de compresie (micșorarea dimensiunii prin algoritmi matematici).

Cele două comenzi de bază sunt: crearea unei arhive comprimate cu tar -czvf arhiva.tar.gz folder/ și extragerea unei arhive cu tar -xzvf arhiva.tar.gz.

Opțiuni și argumente

Opțiune / Parametru Descriere
-c, --create Creează o arhivă nouă.
-x, --extract Extrage conținutul unei arhive existente pe disc.
-t, --list Listează conținutul arhivei fără a o despacheta.
-z, --gzip Filtrează arhiva prin compresorul gzip (pentru extensii .tar.gz sau .tgz).
-j, --bzip2 Filtrează arhiva prin bzip2 (compresie mai puternică, extensie .tar.bz2).
-v, --verbose Afișează numele fiecărui fișier procesat.
-f, --file=NUME Specifică numele fișierului de arhivă (opțiunea -f trebuie pusă întotdeauna ultima în grupul de opțiuni).
-C, --directory=DIR Schimbă directorul înainte de a extrage conținutul (extragere într-o destinație specifică).

Exemple

Exemplul 1: Crearea și extragerea unei arhive tar.gz

Împachetăm un director într-o arhivă comprimată și o extragem într-un folder nou.

mkdir -p pachet
echo "Salut din arhiva" > pachet/mesaj.txt
tar -czf pachet.tar.gz pachet
mkdir -p destinatie
tar -xzf pachet.tar.gz -C destinatie
cat destinatie/pachet/mesaj.txt

Rezultat

Salut din arhiva

Greșeli frecvente

  • Plasarea altei litere după -f (de exemplu tar -czfv fisier.tar.gz): în acest caz tar va crede că numele arhivei este ‘v’ și va da eroare; litera f trebuie să fie întotdeauna urmată direct de numele fișierului.
  • Despachetarea unei arhive necunoscute fără a verifica mai întâi conținutul cu tar -tf (pentru a evita arhivele care își varsă sute de fișiere direct în directorul curent fără un folder părinte, așa-numita „tar bomb”).

Comenzi înrudite

  • gzip: Comprimă fișiere individuale folosind algoritmul Lempel-Ziv (LZ77) și adaugă extensia .gz.
  • zip: Creează arhive comprimate în format standard ZIP, compatibile cu Windows și macOS.
  • unzip: Listează, testează și extrage conținutul din arhivele ZIP.