Linux -filkomprimeringsalternativer og sammenligning

Linux File Compression Options



Komprimering er generelt en nyttig metode som i hovedsak koder informasjon med mindre data enn den opprinnelige. Når det gjelder Linux, er det forskjellige komprimeringsalternativer, hver med sine egne fordeler.

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







Komprimeringstyper

Komprimering er koding og representasjon av informasjon ved å bruke færre biter enn den opprinnelig var. Når det gjelder filkomprimering, bruker en komprimeringsmetode sin egen algoritme og matematiske beregning for å generere en utgang som vanligvis er mindre enn størrelsen på den opprinnelige filen. På grunn av hvordan forskjellig komprimering fungerer og filers tilfeldige karakter, kan kjørelengde variere sterkt.



Det er 2 typer komprimering.



  • Tapende komprimering : Dette er en risikabel type komprimering som ikke garanterer dataintegritet. I hovedsak, når den 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 komprimering er det velkjente MP3-formatet. Når en MP3 opprettes fra den originale lydfilen, er den vesentlig mindre enn den originale musikkilden. Dette fører til tap av noe lydkvalitet.
  • Tapsløs komprimering : Dette er den mest brukte komprimeringstypen. Ved hjelp av en tapsfri komprimeringsmetode kan den originale filen rekonstrueres fra den komprimerte filen. Komprimeringsmetodene jeg vil diskutere i denne artikkelen er alle tapsfrie komprimeringsmetoder.

Linux -komprimering

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





Først trenger vi en testfil. Kjør følgende kommando for å lage en.

$base64/dev/urandom| hode -c 20000000 >file.txt



Den lager en tekstfil med en størrelse på 20 MB.

La oss nå lage 10 kopier av filen. Til sammen er det 200 MB.

Glidelås for komprimering

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

$glidelås <produksjon>.glidelås<input>

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

$glidelåstest.zip*

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

Som standard bruker zip -verktøyet DEFLATE -komprimeringen. Den er imidlertid også i stand til å bruke bzip2 -komprimering. Ikke bare det, du kan også lage passordbeskyttede zip-filer! Lær mer om zip .

Tar for komprimering på Linux

Tjære er ikke en komprimeringsmetode. I stedet brukes det oftest for å lage arkiver. Imidlertid kan den implementere en rekke populære komprimeringsmetoder i arkivet.

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

$tjære <alternativer> <output-fil> <input>

For å legge til testfilene i et enkelt tar -arkiv, kjør følgende kommando.

$tjære -cvftest.tar*

Her forblir filstørrelsen den samme.

Gzip for komprimering på Linux

GNU Zip eller gzip er en annen populær komprimeringsmetode som etter min mening er bedre enn den tradisjonelle zipen på grunn av den bedre komprimeringen. Det er et åpen kildekode-produkt laget av Mark Adler og Jean-Loup Gailly som opprinnelig var bestemt til å erstatte UNIX komprimere nytte.

For å administrere gzip -arkiver er det 2 verktøy tilgjengelig: tjære og gzip. La oss sjekke begge deler.

Først gzip -verktøyet. Slik ser kommandostrukturen gzip ut.

$gzip <alternativ> <input>

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

$gzip -vtest1.txt

Hvis du vil komprimere en hel katalog med gzip, kjører du denne kommandoen. Her er -r -flagget for rekursiv komprimering. Gzip vil gå gjennom alle mappene og komprimere de enkelte filene i hver av dem.

$gzip -r <mappe_bane>

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

$gzip -v -9 <fil>

For bedre kontroll over produksjonen og brukervennlighet er tjære bedre for oppgaven. Kjør følgende kommando.

$tjære -cvzftest.tar.gz*

Resultatet ligner 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. Bzip2 ble først introdusert i 1996, og er mye brukt som et alternativ til gzip -komprimering.

Som gzip er det 2 verktøy for å jobbe med bzip2: tjære og bzip2.

Verktøyet bzip2 fungerer på samme måte som gzip -verktøyet. Det kan bare fungere med bare en enkelt fil om gangen. Her er kommandostrukturen.

$bzip2 <alternativ> <input>

La oss komprimere test1.txt -filen. Her er -v -flagget for verbose modus.

$bzip2 -vtest1.txt

I likhet med gzip støtter bzip2 også forskjellige komprimeringsnivåer, fra 1 (standard, mindre minnebruk) til 9 (ekstrem komprimering, høy minnebruk).

$bzip2 -v -9 <fil>

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

$tjære -cvjftest.tar.bz2*

Komprimeringen er litt bedre enn de forrige. Nå har filstørrelsen krympet til 151,7 MB.

XZ for komprimering på Linux

Det er en relativ nykommer innen komprimering. Først utgitt i 2009, har den hatt en jevn bruksvekst siden den gang.

Xz -komprimeringsverktøyet bruker LZMA2 -algoritmen som er kjent for større komprimeringsforhold sammenlignet med gzip og bzip2, noe som gjør det til et godt valg når du vil spare maksimal diskplass. Dette kommer imidlertid med kostnaden for høyere minnekrav og tidsforbruk.

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

$xz<alternativ> <fil>

For eksempel, kjør følgende kommando for å komprimere filen test1.txt.

$xz-vtest1.txt

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

$xz-v -9 <fil>

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

$tjære -cvJftest.tar.xz*

Her er utdatafilstørrelsen 153,7 MB.

Trekker ut komprimerte arkiver

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

$pakke ut <filnavn>.glidelås-d <mål>

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

$pakke uttest.zip

For å trekke ut tar, tar.gz, tar.bz2 og tar.xz arkiver, må vi bruke tjære verktøy. Følgende tar -kommando gjelder for å trekke ut dem alle.

$tjære -xvf <arkivfilnavn>

La oss for eksempel trekke ut alle filene fra det komprimerte bz2 -arkivet.

$tjære -xvftest.tar.bz2

For å dekomprimere en gzip -fil (ikke tar.gz), kjør denne kommandoen.

$gzip -d <gzip_file>

På samme måte vil følgende kommando dekomprimere bzip2 -arkivet.

$bzip2 -d <bzip2_file>

Samme kommandostruktur gjelder for xz -arkiv.

$xz-d <xz_file>

Siste tanker

Forhåpentligvis har du nå kunnskap nok til å håndtere komprimeringsoppgavene under forskjellige omstendigheter. Avhengig av det spesifikke kravet tilbyr alle komprimeringsmetodene svært attraktive funksjoner.

En viktig ting å merke seg er at komprimeringsresultatet ikke vil være det samme hele tiden. Med forskjellig datainngang vil utgangen være annerledes. For eksempel kan xz i noen tilfeller tilby vanvittig komprimeringsresultat, mens det i dette eksemplet ikke gjorde det. Det samme gjelder andre metoder.

For å lære mer grundig om disse verktøyene, sjekk ut den respektive mannssiden.

$Mann glidelås