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
tarautomatski prepoznaje vrstu kompresije — opcijez,j,Jsu opcione pri raspakovavanju.tar xf arhiva.tar.gzradi isto kaotar 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, razmotrixz.
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'