Archieven en Compressie

Wat is een archief?

Een archief is eigenlijk een enkel bestand dat meerdere bestanden en mappen bevat. Het is net als een gereedschapskist waarin je diverse tools bewaart. Het idee hierachter is om alles wat samen hoort in één pakket samen te brengen, zodat het eenvoudiger is om het te bewaren of te versturen. Een archief verandert op zich niets aan de grootte van de individuele bestanden (tenzij er compressie wordt toegepast); het bundelt ze gewoon bij elkaar.

Wat is compressie?

Compressie is het proces waarbij de grootte van bestanden of een archief wordt verkleind. Dit gebeurt door gebruik te maken van slimme algoritmes die redundante data verwijderen of efficiënter coderen. Denk bijvoorbeeld aan het vacuüm verpakken van je kleren wanneer je op reis gaat zodat er meer in je valies past.

Het doel is om minder opslagruimte te gebruiken of om bestanden sneller te verzenden via internet. Er zijn twee belangrijke dingen om in gedachten te houden:

  • Niet elk archief is per definitie gecomprimeerd.

  • Comprimeren kan wel zorgen voor wat kwaliteitsverlies in bepaalde media (bijvoorbeeld bij audio of video), maar bij tekst en programma’s gebeurt dit meestal zonder verlies van informatie.

Hoe werkt dit in Windows?

Windows heeft ingebouwde ondersteuning voor ZIP-bestanden. Je kunt bijvoorbeeld een map selecteren, met de rechtermuisknop klikken en kiezen voor "Verzenden naar > Gecomprimeerde (gezipte) map". Dit pakt de bestanden samen in één ZIP-bestand en past tegelijkertijd compressie toe, zodat de totale grootte kleiner wordt. Het archiveren en comprimeren van je bestanden gebeurd dus in één stap.

Naast de standaardmethode gebruiken veel mensen ook andere programma’s zoals 7-Zip of WinRAR. Deze programma’s ondersteunen bovendien andere archiefformaten (zoals RAR of 7z) en bieden vaak meer opties voor het aanpassen van de mate van compressie en andere instellingen.

Hoe werkt dit in Linux?

In Linux is het archiveren en comprimeren van bestanden een afzonderlijk process. Het is gebruikelijk om eerst met het tar commando een archief te maken van meerdere bestanden of mappen. Het resultaat is typisch een .tar-bestand. Op dit tar-bestand wordt vervolgens compressie toegepast met tools zoals gzip of bzip2. Dit levert bestandsnamen op zoals .tar.gz of .tar.bz2. Een typisch commando ziet er als volgt uit:

tar -czvf archief.tar.gz mapnaam

Hierbij staat:

  • c voor create (aanmaken van een archief),

  • z voor gzip compressie,

  • v voor verbose (zodat je ziet wat er gebeurt),

  • f voor file (waarna je de naam van het archief invult).

Een groot voordeel van archiveren met tar in Linux is dat het de bestandsrechten en metadata (zoals datum en eigenaar) behoudt.

Comprimeren zonder te archiveren

Compressie hoeft niet altijd te betekenen dat je tegelijkertijd bestanden samenvoegt tot één archief. In Linux kun je een enkel bestand direct comprimeren met behulp van commando's zoals gzip, bzip2 of xz. Deze tools passen een algoritme toe om de bestandsgrootte te verkleinen zonder eerst de bestanden te bundelen.

voorbeeld Stel je hebt een tekstbestand genaamd bestand.txt. Als je dit bestand wilt comprimeren, typ je in de terminal:

gzip bestand.txt

Dit commando vervangt bestand.txt door een gecomprimeerd bestand met de naam bestand.txt.gz. Hiermee wordt de oorspronkelijke inhoud efficiënter opgeslagen. Om het bestand weer terug te zetten naar de originele vorm, gebruik je:

gunzip bestand.txt.gz

Bij deze werkwijze wordt het bestand op zichzelf gecomprimeerd, zonder dat je het combineert met andere bestanden in één enkel archiefbestand. Wanneer je echter meerdere bestanden in één keer wil comprimeren, bundel je deze best eerst tot een archief alvorens je compressie toepast.

Compressie algoritmes

gzip

gzip is zeer snel bij zowel het comprimeren als het de-comprimeren van bestanden. Dit maakt het ideaal voor scenario's waarin snelheid belangrijk is, zoals bij webservers die vaak data moeten comprimeren en versturen. Hoewel gzip snel is, is de verkregen compressieverhouding gemiddeld. Dit betekent dat de bestandsgrootte wel vermindert, maar vaak minder dan wat met bzip2 of xz mogelijk is.

voorbeeld

gzip bestand.txt

zal bestand.txt comprimeren naar bestand.txt.gz.

bzip2

bzip2 is over het algemeen langzamer dan gzip, zowel bij het comprimeren als bij het de-comprimeren van bestanden. Dit merk je vooral bij grotere bestanden of uitgebreide mappen. Het voordeel van bzip2 ligt in een betere compressieverhouding. De bestanden worden doorgaans kleiner gecomprimeerd dan bij gzip, wat handig is als opslagruimte een belangrijke factor is.

voorbeeld

bzip2 bestand.txt

zal bestand.txt comprimeren naar bestand.txt.bz2.

xz

xz is vaak de traagste optie tijdens het comprimeren, terwijl de de-compressiesnelheid relatief beter is, maar niet zo snel als gzip. Dit betekent dat xz vooral opvalt als je bereid bent meer tijd te investeren voor een optimaal resultaat. xz biedt doorgaans de beste compressieverhouding van de drie. Dit leidt tot aanzienlijk kleinere bestanden, wat ideaal is als je echt elke byte wilt besparen. Het kan echter meer geheugen en verwerkingstijd vereisen.

voorbeeld

xz bestand.txt

zal bestand.txt comprimeren naar bestand.txt.xz.

Last updated