Gym
lesson

Arhiviranje i kompresija

Arhiviranje je proces spajanja više fajlova i direktorijuma u jedan fajl. Kompresija smanjuje veličinu tog fajla. Na Linuxu se ova dva koraka često kombinuju uz pomoć alata tar.

tar — arhiver

tar (Tape ARchive) je standardni alat za arhiviranje na Linuxu. Podržava više formata kompresije.

Najvažnije opcije

Opcija Značenje
c Kreiraj novu arhivu (create)
x Raspakuj arhivu (extract)
f Sledeći argument je ime fajla
v Ispiši fajlove koji se obrađuju (verbose)
z Koristi gzip kompresiju (.tar.gz)
j Koristi bzip2 kompresiju (.tar.bz2)
J Koristi xz kompresiju (.tar.xz)
t Izlistaj sadržaj arhive bez raspakovavanja

Kreiranje arhive

# Kreiraj gzip arhivu od direktorijuma
tar czf arhiva.tar.gz folder/

# Kreiraj arhivu sa više fajlova/direktorijuma
tar czf backup.tar.gz dokument.txt slike/ projekat/

# bzip2 kompresija (sporija, ali bolja kompresija)
tar cjf arhiva.tar.bz2 folder/

# xz kompresija (najjača kompresija)
tar cJf arhiva.tar.xz folder/

# Bez kompresije (samo arhiviranje)
tar cf arhiva.tar folder/

Raspakovavanje arhive

# Raspakuj u trenutni direktorijum
tar xzf arhiva.tar.gz

# Raspakuj u određeni direktorijum
tar xzf arhiva.tar.gz -C /home/student/cilj/

# Raspakuj bzip2 arhivu
tar xjf arhiva.tar.bz2

# Raspakuj xz arhivu
tar xJf arhiva.tar.xz

# Raspakuj bez kompresije
tar xf arhiva.tar

Pregled sadržaja arhive

# Izlistaj fajlove u arhivi bez raspakovavanja
tar tzf arhiva.tar.gz

# Izlistaj sa detaljima (dozvole, veličina, datum)
tar tvzf arhiva.tar.gz

Napomena: Moderna verzija tar automatski prepoznaje vrstu kompresije — opcije z, j, J su opcione pri raspakovavanju. tar xf arhiva.tar.gz radi isto kao tar xzf arhiva.tar.gz.


gzip / gunzip

gzip kompresuje jedan fajl i dodaje mu ekstenziju .gz. Za razliku od tar, ne arhivira više fajlova — samo kompresuje.

# Kompresuj fajl (originalni fajl se briše, nastaje log.txt.gz)
gzip log.txt

# Dekompresuj
gunzip log.txt.gz

# Kompresuj bez brisanja originala
gzip -k log.txt

# Prikaži nivo kompresije (statistike)
gzip -v log.txt

bzip2 / bunzip2

bzip2 daje bolju kompresiju od gzip, ali je sporiji. Kreira fajlove sa .bz2 ekstenzijom.

# Kompresuj
bzip2 log.txt

# Dekompresuj
bunzip2 log.txt.bz2

# Zadrži originalni fajl
bzip2 -k log.txt

xz / unxz

xz pruža najjaču kompresiju od sva tri alata, ali je i najsporiji. Pogodan za distribuciju softvera.

# Kompresuj
xz log.txt

# Dekompresuj
unxz log.txt.xz

# Zadrži original
xz -k log.txt

zip / unzip

zip format je popularan na Windows sistemima i lako se razmenjuje između operativnih sistema. Kombinuje arhiviranje i kompresiju u jednom koraku.

# Kreiraj zip arhivu od fajlova
zip arhiva.zip fajl1.txt fajl2.txt

# Kreiraj zip od celog direktorijuma (rekurzivno)
zip -r arhiva.zip folder/

# Raspakuj zip arhivu
unzip arhiva.zip

# Raspakuj u određeni direktorijum
unzip arhiva.zip -d /home/student/cilj/

# Izlistaj sadržaj bez raspakovavanja
unzip -l arhiva.zip

Savet: Za svakodnevnu upotrebu koristi tar czf (gzip) — dobar balans brzine i kompresije. Za distribuciju velikih paketa softvera, razmotri xz.


Praktični primeri

Backup home direktorijuma

tar czf ~/backup-home-$(date +%Y%m%d).tar.gz ~/dokumenti/ ~/projekti/

Kreiranje arhive bez određenih fajlova

# Isključi .log fajlove iz arhive
tar czf arhiva.tar.gz projekat/ --exclude='*.log'