[linux] Re: Is zip sneller dan tar?

Paul Slootman paul+nospam op wurtel.net
Vr Okt 23 09:02:39 CEST 2015


On Thu 22 Oct 2015, Johan Wevers wrote:
> 
> Als je een bestand uit een .tar.gz wilt halen moet eerst de hele tarfile
> geunzipt worden waarna tar er een bestand uit kan halen. Dat eerste deel

Dat komt omdat tar een zgn. stream format is: er staat een header met de
gegevens van het volgend ingepakt bestand (naam, grootte, eigenaar,
datum, enz.) en dan de inhoud zelf. Tar weet dan waar de volgende header
staat (want het weet hoe lang de vorige file is), en herhaalt het zich
weer.

Als je dus een bepaalde file wilt, dan moet je sequentieel door de tar
file heen lezen. Niet zo gek natuurlijk, aangezien "tar" voor "tape
archive" staat en tapes inherent alleen sequentieel te benaderen zijn...

> is traag als het een erg groot bestand is. Bij zip is dat niet nodig,
> daar kan het bestand direct uitgehaald worden.

Bij zip staat aan het eind van het zip bestand de index. Daarin staat de
lijst van files samen met waar elke file te vinden in het zip bestand.
Als je dus een bepaalde file wilt hebben, dan hoeft alleen die index
gelezen te worden, en dan kan direct naar de juiste locatie geseeked
worden.

Leuk detail: de 1e file uit een zip bestand kun je gewoon met
gunzip < bla.zip > file eruit halen. Werkt dus ook als de index stuk is
(omdat bv. de download niet helemaal afgemaakt is).


Offtopic: wie heeft weleens met 'zoo' gewerkt :-) Uit de tijd voordat
zip/unzip onder unix beschikbaar waren...

Paul



More information about the Linux mailing list