Arhiviranje i komprimiranje
-
stilovi/standardi parametara
- System V (UNIX) stil -- prefiksirani crticom, mogu se grupirati (npr.
ls -a -s
je isto što ils -as
) - BSD stil -- nisu prefiksirani crticom, mogu se grupirati (kod
tar
-a se moraju) - GNU dugački stil -- prefiksirani dvjema crticama, ne mogu se grupirati (npr.
ls --all --size
)
- System V (UNIX) stil -- prefiksirani crticom, mogu se grupirati (npr.
Arhiviranje
-
tar (naredba
tar
) je alat za arhiviranje (!= komprimiranje)- ime tar je skraćeno od Tape ARchiver
- arhive koje stvara nazivamo tarball
-
podržava sva tri stila parametara; sljedeće naredbe su ekvivalentne
$ tar -c tekst.txt # System V stil $ tar c tekst.txt # BSD stil $ tar --create tekst.txt # GNU dugački stil
-
osnovni parametri su
-Acdtrux
, u šali se ponekad čita kao "acid trucks" - postoje i brojne druge šale o alatu, npr. xkcd: tar
-
stvaranje
tar
arhive vrši se pomoću parametra-c
:$ tar -cvf naziv_arh.tar naziv_dir/ # c = create, v = verbose, f = file; v je opcionalan $ tar -cvf naziv_arh1.tar naziv_dat
-
izvlačenje datoteka iz
tar
arhive radi se pomoću parametra-x
(untar
ne postoji):$ tar -xvf naziv_arh.tar # x = extract
-
izlistavanje datoteka u
tar
arhivi:$ tar -tvf naziv_arh.tar
-
ostale mogućnosti
tar
-a:$ tar -rvf naziv_arh.tar adresa/nove/Dat # dodavanje jedne datoteke u tar datoteku $ tar -rvf naziv_arh.tar adresa/novog/Dir/ # dodavanje jednog direktorija u tar datoteku $ tar -xvf naziv_arh.tar naziv_datoteke # izvlačenje jedne datoteke iz tar datoteke $ tar -xvf naziv_arh.tar naziv_direktorija # izvlačenje jednog direktorija iz tar datoteke
Zadatak
- U svom kućnom direktoriju stvorite datoteku
dat1.txt
, direktorijBackup
i direktorijArhiviranje
, i u njemu niz od 5 tekstualnih datoteka, koje redom nazovitetekst1.txt
,tekst2.txt
, …,tekst5.txt
. - Iz
~
u direktorijuBackup
stvorite arhivu pod nazivom6-datoteka.tar
koja sadrži sve gore navedene datoteke. - Izlistajte sadržaj te
tar
datoteke, bez izvlačenja datoteka iztar
-a i bez izlaska iz~
. - U direktoriju
Arhiviranje
stvorite datotekutekst6.txt
i dodajte ju u postojeću arhivu.
Komprimirane arhive
-
gzip
,bzip2
ixz
su alati za komprimiranje jedne datoteke (dakle, ne arhiviranje)- veličina komprimirane datoteke varira ovisno o vrsti sadržaja polazne datoteke
- brzina kompresije varira ovisno o veličini datoteke za kompirimiranje, parametrima kompresije i vrsti sadržaja
- nakon komprimiranja brišu polaznu datoteku
-
gunzip
,bunzip2
iunxz
su alati za dekomprimiranje- brzina dekomprimiranja varira ovisno o veličini komprimirane datoteke, parametrima kompresije i vrsti sadržaja
- nakon dekomprimiranja brišu komprimiranu datoteku
-
tar
može koristitigzip
,bzip2
ixz
pa kao rezultat dobijemo komprimiranu arhivucf
-- create file, bez kompresijeczf
se koristi za gzip kompresiju,cjf
za bzip2 kompresiju,cJf
za xz kompresijuxf
-- extract file, automatsko prepoznavanje kompresijexzf
,xjf
ixJf
rade raspakiravanje datoteka s odgovarajućom kompresijom
Zadatak
- U direktoriju
Arhiviranje
stvorite poddirektorijPohrana
. Koristećibzip2
kompresiju stvorite arhivuarhiva.tar.bz2
koja sadrži datoteketekst2.txt
itekst4.txt
, te direktorijPohrana
. - U svom kućnom direktoriju stvorite direktorij
dir-backup
, te raspakirajte arhivuarhiva.tar.bz2
u taj direktorij bez kopiranja. - Izlaz naredbe
dmesg
zapišite u datotekuizlaz.txt
. Kopirajte ju u datotekeizlaz1.txt
iizlaz2.txt
. (Naredbadmesg
ispisuje poruke koje Linux jezgra javlja kod pokretanja sustava. U većini slučajeva radi se o porukama o hardveru, memoriji i procesima.) - Datoteku
izlaz1.txt
sažmitegzip
-om, a datotekuizlaz2.txt
bzip2
-om. - Saznajte kako ispisati veličine dobivenih datoteka, te ih usporedite.
Dodatni zadatak
- Ispitajte koriste li se
xz
iunxz
na isti način kao igzip
, odnosnobzip2
. - Izlaz naredbe
dmesg
zapišite u datotekuizlaz.txt
. Kopirajte ju u datotekeizlaz1.txt
iizlaz2.txt
. - Datoteku
izlaz1.txt
komprimirajtegzip
-om, a datotekuizlaz2.txt
bzip2
-om. - Saznajte kako ćete ispisati veličine dobivenih datoteka, a zatim ih usporedite. Objasnite zašto, unatoč tome što
bzip2
komprimira više odgzip
-a, nema razlike u veličini. - Sada izlaz naredbe
dmesg
dopišite u praznu datotekuizlaz2.txt
pet puta (cilj je dobiti veću datoteku). Ponovite gore opisani postupak. Ima li razlike u veličini datoteka? Objasnite zašto. - Isprobajte
cat
na sve tri datoteke. Objasnite dobiveni rezultat. Mogu li vam naredbezcat
ibzcat
pomoći?
zip
iunzip
služe za baratanje ZIP komprimiranim arhivama
ToDo
Ovdje nedostaje zadatak.
Pitanja za ponavljanje
- Što je
tar
? - Koje stilove navođenja parametara poznajete?
- Prisjetite se nekih ranijih naredbi koje smo obradili i provjerite koju vrstu navođenja parametara podržavaju.
- Objasnite pojam
tarball
. - Koje alate za sažimanje podataka poznajete?
- Usporedite najvažnije alate za sažimanje podataka u Unix-like OS-ima.
- Kako se sadržaj sažima koristeći naredbu
tar
?
Author: Vedran Miletić, Vanja Slavuj, Sanja Pavkov