Linux filkompresjonsalternativer og sammenligning

Linux filkompresjonsalternativer og sammenligning
Generelt sett er komprimering en nyttig metode som i hovedsak koder for informasjon ved bruk av mindre data enn den originale. Når det gjelder Linux, er det forskjellige komprimeringsalternativer, hver med sine egne fordeler.

En generisk Linux -distro tilbyr tilgang til en håndfull virkelig nyttige og enkle kompresjonsmekanismer. Denne artikkelen vil bare fokusere på dem.

Komprimeringstyper

Komprimering er koding og representerer informasjon ved bruk av færre biter enn den opprinnelig var. Når det. På grunn av hvordan forskjellig komprimering fungerer og den tilfeldige naturen til filer, kan kjørelengden variere veldig.

Det er to typer komprimering.

  • Tapt komprimering: Dette er en risikabel type komprimering som ikke garanterer dataintegritet. I hovedsak, når det er komprimert, er det en risiko for at den opprinnelige filen ikke kan rekonstrueres ved hjelp av det komprimerte arkivet.
    Et solid eksempel på denne typen komprimeringer er det velkjente mp3-formatet. Når en mp3 er opprettet fra den originale lydfilen, er den betydelig mindre enn den originale kildemusikkfilen. Dette forårsaker tap av litt lydkvalitet.
  • Tapsfri komprimering: Dette er den mest brukte typen komprimering. Ved hjelp av en "tapsfri" komprimeringsmetode kan den opprinnelige filen rekonstrueres fra den komprimerte filen. Kompresjonsmetodene jeg skal diskutere i denne artikkelen er alle tapsfrie kompresjonsmetoder.

Linux komprimering

Flertallet av kompresjonsmetodene er tilgjengelige fra verktøyet tjære. Når det gjelder "zip" -kompresjonen, bruker vi glidelås verktøy. Forutsatt at systemet ditt allerede har disse verktøyene installert, la oss komme i gang.

Til å begynne med trenger vi en testfil. Kjør følgende kommando for å opprette en.

$ base64 /dev /urandom | Head -C 20000000> Fil.tekst

Den oppretter en tekstfil med 20 MB -størrelse.

La oss nå lage 10 eksemplarer av filen. Sammen er det 200 MB.

ZIP for komprimering

Zip er ganske vanlig. For å lage en zip -fil, krever zip -verktøyet følgende kommandostruktur.

$ zip .glidelås

For å komprimere alle filene under testkatalogen i en enkelt zip -fil, kjør denne kommandoen.

$ ZIP -test.glidelås *

Inngangsstørrelsen var 200 MB. Etter komprimering er det nå 152 MB!

Som standard vil zip -verktøyet bruke deflate komprimeringen. Imidlertid er det også i stand til å bruke BZIP2 -komprimering. Ikke bare det, du kan også lage passordbeskyttede zip-filer! Lær mer om zip.

Tjære for komprimering på linux

Tjære er ikke en kompresjonsmetode. I stedet brukes det oftest til å lage arkiver. Imidlertid kan det implementere en rekke populære kompresjonsmetoder til arkivet.

For håndtering av tjære (også kjent som "tarball") arkiv, er det tjæreverktøyet. Lær mer om tjære. Generelt bruker tjæreverktøyet følgende kommandostruktur.

$ tar

For å legge til testfilene i et enkelt tjærearkiv, kjør følgende kommando.

$ tar -cvf test.tjære *

Her forblir filstørrelsen den samme.

Gzip for komprimering på Linux

GNU Zip eller Gzip er en annen populær kompresjonsmetode som etter min mening er bedre enn den tradisjonelle glidelåsen på grunn av dens bedre komprimering. Det er et open source-produkt laget av Mark Adler og Jean-Loup Gailly som opprinnelig var bestemt til å erstatte UNIX komprimere nytte.

For å administrere GZIP -arkiver er det to verktøy tilgjengelig: TAR og GZIP. La oss sjekke ut begge.

Først Gzip -verktøyet. Slik ser GZIP -kommandostrukturen ut.

$ gzip

For eksempel vil følgende kommando erstatte test1.txt med test1.tekst.GZ komprimert fil.

$ gzip -v test1.tekst

Hvis du vil komprimere en hel katalog ved hjelp av Gzip, kjør denne kommandoen. Her er "-r" -flagget for "rekursiv" komprimering. Gzip vil gå gjennom alle mappene og komprimere den enkelte filen (e) i hver av dem.

$ gzip -r

GZIP støtter forskjellige kompresjonsstyrkeverdier, fra 1 (minst komprimering, raskest) til 9 (beste komprimering, tregeste).

$ gzip -v -9

For bedre kontroll over produksjonen og brukervennligheten er TAR bedre for oppgaven. Kjør følgende kommando.

$ tar -cvzf test.tjære.gz *

Resultatet ligner på zip ved bruk av Deflate, noe som resulterer i 152 MB etter komprimering.

BZIP2 for komprimering på Linux

BZIP2 er et gratis og åpen kildekodeverktøy som bruker Burrows-Wheeler-algoritmen for komprimering. Først introdusert tilbake i 1996, brukes BZIP2 sterkt som et alternativ til Gzip -komprimeringen.

Som Gzip, er det to verktøy å jobbe med BZIP2: TAR og BZIP2.

BZIP2 -verktøyet fungerer som GZIP -verktøyet. Det kan bare fungere med bare en enkelt fil om gangen. Her er kommandostrukturen.

$ BZIP2

La oss komprimere testen1.txt -fil. Her er "-v" -flagget for ordentlig modus.

$ bzip2 -v test1.tekst

I likhet med GZIP støtter BZIP2 også forskjellige komprimeringsnivåer, fra 1 (standard, mindre minnebruk) til 9 (ekstrem komprimering, bruk av høyt minne).

$ bzip2 -v -9

Den bedre måten å bruke BZIP2 -komprimering er ved å bruke tjære. Bruk følgende kommando.

$ tar -cvjf test.tjære.BZ2 *

Komprimeringen er litt forbedret enn de forrige. Nå har filstørrelsen krympet til 151.7 MB.

XZ for komprimering på Linux

Det er en relativ nykommer innen komprimeringsfeltet. Først utgitt i 2009, har den sett en jevn vekst av bruken siden den gang.

XZ -komprimeringsverktøyet bruker LZMA2 -algoritmen som er kjent for større kompresjonsforhold sammenlignet med Gzip og BZIP2, noe som gjør det til et godt valg når du vil spare den maksimale mengden diskplass. Dette kommer imidlertid med kostnadene for høyere minnekrav og tidsforbruk.

Filen opprettet av XZ -komprimeringsverktøyet har utvidelsen .xz. For å komprimere en enkelt fil, kan du direkte ringe XZ -verktøyet.

$ xz

Kjør for eksempel følgende kommando for å komprimere test1.txt -fil.

$ xz -v test1.tekst

I likhet med andre nevnte kompresjonsmetoder, støtter XZ også forskjellige kompresjonsstyrke, fra 1 (laveste komprimering, raskest) til 9 (beste komprimering, tregeste). Hvis du ikke har hensyn til tid og bare vil spare plass, så gå til det ekstreme.

$ xz -v -9

For å opprette en komprimert XZ -fil fra alle testfilene, kjør denne kommandoen.

$ tar -cvjf test.tjære.XZ *

Her er utgangsfilstørrelsen 153.7 MB.

Trekke ut komprimerte arkiver

Å trekke ut arkivene vi opprettet er enklere enn å lage dem. For å trekke ut en zip -fil, bruk følgende kommandostruktur.

$ Unzip .Zip -D

For å trekke ut zip -arkivet vi opprettet, kjør denne kommandoen. Dette vil hente ut alt innholdet i samme katalog.

$ Unzip -test.glidelås

For å trekke ut tjære, tjære.GZ, TAR.BZ2 og Tar.XZ -arkiver, vi må bruke tjære verktøy. Følgende tjærekommando er aktuelt for å trekke ut dem alle.

$ tar -xvf

La oss for eksempel trekke ut alle filene fra BZ2 -komprimert arkiv.

$ tar -xvf test.tjære.BZ2

Å dekomprimere en gzip (ikke tjære.gz) fil, kjør denne kommandoen.

$ gzip -d

Tilsvarende vil følgende kommando dekomprimere BZIP2 Archive.

$ bzip2 -d

Samme kommandostruktur gjelder for XZ Archive.

$ xz -d

Siste tanker

Forhåpentligvis har du nok kunnskap nok til å håndtere kompresjonsoppgavene under forskjellige omstendigheter. Avhengig av det spesifikke kravet, tilbyr alle kompresjonsmetodene veldig attraktive funksjoner.

En viktig ting å merke seg er at komprimeringsresultatet vil ikke være det samme hele tiden. Med forskjellige datainndata vil utgangen være forskjellig. I noen tilfeller kan XZ for eksempel tilby sinnssyke kompresjonsresultat, mens det i dette eksemplet gjorde det ikke. Det samme gjelder andre metoder.

For å lære mer dyptgående om disse verktøyene, sjekk ut deres respektive mannside.

$ mann zip