tar.gz archívum készítése és kicsomagolása Linuxon

Linuxon a fájlok és mappák archiválásának legelterjedtebb formája a tar.gz (vagy .tgz): a tar program a fájlokat egyetlen archívumba gyűjti, a jogosultságokkal és a tulajdonosokkal együtt, a gzip pedig tömöríti. Mentések, költöztetések és letöltött programok esetén is ezzel találkozik a leggyakrabban. ZIP fájlok kezeléséről a ZIP fájl kicsomagolása egy megadott mappába cikk szól.

Archívum készítése

tar -czvf weboldal.tar.gz weboldal/

A kapcsolók jelentése:

  • -c (create): új archívum létrehozása,
  • -z: gzip tömörítés,
  • -v (verbose): kiírja a feldolgozott fájlokat (elhagyható),
  • -f: utána következik az archívum neve. Ennek mindig a kapcsolók végén kell állnia.

Több fájl vagy mappa is megadható:

tar -czvf mentes.tar.gz public_html/ adatbazis.sql .htaccess

Mappák és fájlok kihagyása

tar -czvf weboldal.tar.gz --exclude='weboldal/wp-content/cache' --exclude='*.log' weboldal/

A dátum a fájlnévben

Rendszeres mentésnél hasznos, ha a fájlnév tartalmazza a dátumot:

tar -czf weboldal-$(date +%Y-%m-%d).tar.gz weboldal/

Archívum kicsomagolása

# Kicsomagolás az aktuális könyvtárba
tar -xzvf weboldal.tar.gz

# Kicsomagolás egy megadott könyvtárba (a célkönyvtárnak léteznie kell)
mkdir -p /var/www/uj
tar -xzvf weboldal.tar.gz -C /var/www/uj

Az -x (extract) kapcsoló jelenti a kicsomagolást. A kicsomagolás felülírja a célkönyvtárban lévő azonos nevű fájlokat, kérdés nélkül.

A tartalom megtekintése kicsomagolás nélkül

tar -tzvf weboldal.tar.gz

A -t (list) kapcsoló kilistázza az archívum tartalmát. Kicsomagolás előtt érdemes megnézni, hogy az archívum egy mappát tartalmaz-e, vagy közvetlenül a fájlokat; utóbbi esetben a fájlok szétszóródnak az aktuális könyvtárban.

Egyetlen fájl kicsomagolása

Adja meg a fájl elérési útját pontosan úgy, ahogy a tar -tzf kiírja:

tar -xzvf weboldal.tar.gz weboldal/wp-config.php

Más tömörítési formátumok

A tömörítés típusát a kapcsoló határozza meg:

Kiterjesztés Kapcsoló Jellemző
.tar.gz, .tgz -z gyors, mindenhol elérhető
.tar.bz2 -j kisebb fájl, lassabb
.tar.xz -J a legkisebb fájl, a leglassabb
.tar.zst --zstd gyors és jó tömörítésű, újabb rendszereken
.tar (nincs) tömörítés nélkül

Kicsomagoláskor a modern tar a formátumot magától felismeri, így a tömörítési kapcsoló el is hagyható:

tar -xvf archivum.tar.xz

Egyetlen fájl tömörítése gzip-pel

Ha csak egy fájlt (például egy adatbázis-mentést vagy naplófájlt) szeretne tömöríteni, nincs szükség a tar-ra:

# Tömörítés: a fájl helyére adatbazis.sql.gz kerül
gzip adatbazis.sql

# Kicsomagolás
gunzip adatbazis.sql.gz

# Tömörítés úgy, hogy az eredeti is megmaradjon
gzip -k adatbazis.sql

Jogosultságok és tulajdonosok

A tar az archívumban eltárolja a fájlok jogosultságait és tulajdonosát. Kicsomagoláskor a tulajdonost csak root felhasználóként állítja vissza; normál felhasználóként a kicsomagolt fájlok a kicsomagoló felhasználó tulajdonába kerülnek. Ha a kicsomagolás után a webszerver nem éri el a fájlokat, ellenőrizze a tulajdonost és a jogosultságokat (lásd: Fájljogosultságok (chmod, chown) Linuxon).

Ha abszolút elérési utat ad meg (pl. tar -czf mentes.tar.gz /var/www), a tar az elején lévő / jelet eltávolítja, és a fájlokat var/www/... néven tárolja. Kicsomagoláskor ezért a fájlok az aktuális könyvtárban (vagy a -C kapcsolóval megadott helyen) jönnek létre, nem írják felül az eredeti helyükön lévőket.