Linux failu saspiešanas iespējas un salīdzinājums

Linux File Compression Options



Saspiešana kopumā ir noderīga metode, kas būtībā kodē informāciju, izmantojot mazāk datu nekā sākotnējā. Linux gadījumā ir dažādas saspiešanas iespējas, katrai no tām ir savas priekšrocības.

Vispārējs Linux izplatītājs piedāvā piekļuvi nedaudziem patiešām noderīgiem un vienkāršiem saspiešanas mehānismiem. Šajā rakstā uzmanība tiks pievērsta tikai tiem.







Kompresijas veidi

Saspiešana ir informācijas kodēšana un attēlošana, izmantojot mazāk bitu nekā sākotnēji. Failu saspiešanas gadījumā saspiešanas metode izmanto savu algoritmu un matemātisko aprēķinu, lai ģenerētu izvadi, kas parasti ir mazāks par sākotnējā faila lielumu. Sakarā ar to, kā darbojas saspiešana un failu nejaušība, nobraukums var ievērojami atšķirties.



Ir 2 saspiešanas veidi.



  • Zaudēta kompresija : Tas ir riskants saspiešanas veids, kas negarantē datu integritāti. Būtībā pēc saspiešanas pastāv risks, ka sākotnējo failu nevar atjaunot, izmantojot saspiesto arhīvu.
    Labs šāda veida saspiešanas piemērs ir plaši pazīstamais MP3 formāts. Kad MP3 tiek izveidots no sākotnējā audio faila, tas ir ievērojami mazāks nekā sākotnējais avota mūzikas fails. Tas izraisa zināmas skaņas kvalitātes zudumu.
  • Kompresija bez zudumiem : Šis ir visplašāk izmantotais saspiešanas veids. Izmantojot bezzudumu saspiešanas metodi, sākotnējo failu var rekonstruēt no saspiestā faila. Šajā rakstā aplūkotās saspiešanas metodes ir visas bez zudumu saspiešanas metodes.

Linux saspiešana

Lielākā daļa saspiešanas metožu ir pieejamas no rīka darva . Runājot par rāvējslēdzēja saspiešanu, mēs izmantosim rāvējslēdzējs rīks. Pieņemot, ka jūsu sistēmā jau ir instalēti šie rīki, sāksim darbu.





Sākumā mums ir nepieciešams pārbaudes fails. Palaidiet šādu komandu, lai to izveidotu.

$bāze64/dev/nejaušs| galvu -c 20000000 >fails.txt



Tas izveidos teksta failu ar 20 MB lielumu.

Tagad izveidosim 10 faila kopijas. Kopā tas ir 200 MB.

Zip kompresijai

Zip ir diezgan izplatīta. Lai izveidotu zip failu, zip rīkam ir nepieciešama šāda komandu struktūra.

$rāvējslēdzējs <izvade>.zip<ievadi>

Lai saspiestu visus pārbaudes direktorijā esošos failus vienā zip failā, palaidiet šo komandu.

$rāvējslēdzējstest.zip*

Ievades lielums bija 200 MB. Pēc saspiešanas tas tagad ir 152 MB!

Pēc noklusējuma zip rīks izmantos DEFLATE saspiešanu. Tomēr tas var izmantot arī bzip2 saspiešanu. Ne tikai to, ka varat arī izveidot ar paroli aizsargātus zip failus! Uzziniet vairāk par zip .

Tar kompresijai Linux

Darva nav saspiešanas metode. Tā vietā to visbiežāk izmanto arhīvu veidošanai. Tomēr arhīvā tā var ieviest vairākas populāras saspiešanas metodes.

Darvas (pazīstams arī kā tarball) arhīva apstrādei ir darvas rīks. Uzziniet vairāk par darvu. Parasti darvas rīks izmanto šādu komandu struktūru.

$darva <iespējas> <output_file> <ievadi>

Lai testa failus pievienotu vienam darvas arhīvam, palaidiet šādu komandu.

$darva -cvftest.tar*

Šeit faila lielums paliek nemainīgs.

Gzip saspiešanai Linux

GNU Zip vai gzip ir vēl viena populāra saspiešanas metode, kas, manuprāt, ir labāka par tradicionālo zip, jo tā ir labāk saspiesta. Tas ir atvērtā pirmkoda produkts, ko radījuši Marks Adlers un Žans Lups Gailijs un kuram sākotnēji bija paredzēts aizstāt UNIX saspiest lietderība.

Gzip arhīvu pārvaldīšanai ir pieejami 2 rīki: darva un gzip. Apskatīsim abus.

Pirmkārt, rīks gzip. Lūk, kā izskatās gzip komandu struktūra.

$gzip <iespēja> <ievadi>

Piemēram, šāda komanda aizstās test1.txt ar saspiestu failu test1.txt.gz.

$gzip -vtest1.txt

Ja vēlaties saspiest visu direktoriju, izmantojot gzip, palaidiet šo komandu. Šeit karogs -r ir paredzēts rekursīvai saspiešanai. Gzip izies cauri visām mapēm un saspiež atsevišķos failus katrā no tiem.

$gzip -r <folder_path>

Gzip atbalsta dažādas saspiešanas stiprības vērtības, sākot no 1 (vismazākā saspiešana, ātrākais) līdz 9 (labākā saspiešana, lēnākā).

$gzip -v -9 <failu>

Lai labāk kontrolētu izvadi un ērtu lietošanu, darva ir labāka šim uzdevumam. Palaidiet šādu komandu.

$darva -cvzftest.tar.gz*

Rezultāts ir līdzīgs zip, izmantojot DEFLATE, un pēc saspiešanas tiek iegūti 152 MB.

Bzip2 saspiešanai Linux

Bzip2 ir bezmaksas un atvērtā koda rīks, kas saspiešanai izmanto Burrows-Wheeler algoritmu. Bzip2 pirmo reizi tika ieviests 1996. gadā, un to plaši izmanto kā alternatīvu gzip saspiešanai.

Tāpat kā gzip, ar bzip2 var strādāt 2 rīki: darva un bzip2.

Rīks bzip2 darbojas līdzīgi gzip rīkam. Tas vienlaikus var darboties tikai ar vienu failu. Šeit ir komandu struktūra.

$bzip2 <iespēja> <ievadi>

Saspiedīsim failu test1.txt. Šeit karogs -v ir paredzēts detalizētam režīmam.

$bzip2 -vtest1.txt

Līdzīgi kā gzip, arī bzip2 atbalsta dažāda līmeņa saspiešanu, sākot no 1 (noklusējuma, mazāk atmiņas lietojuma) līdz 9 (ārkārtēja saspiešana, liels atmiņas lietojums).

$bzip2 -v -9 <failu>

Labāks bzip2 saspiešanas veids ir darvas izmantošana. Izmantojiet šādu komandu.

$darva -cvjftest.tar.bz2*

Saspiešana ir nedaudz uzlabota nekā iepriekšējās. Tagad faila lielums ir samazinājies līdz 151,7 MB.

XZ saspiešanai Linux

Tas ir salīdzinoši jaunpienācējs kompresijas jomā. Pirmo reizi izlaists 2009. gadā, kopš tā laika tas ir pastāvīgi pieaudzis.

Kompresijas rīks xz izmanto LZMA2 algoritmu, kas ir pazīstams ar lielāku saspiešanas pakāpi salīdzinājumā ar gzip un bzip2, padarot to par lielisku izvēli, ja vēlaties ietaupīt maksimālo diska vietas apjomu. Tomēr tas ir saistīts ar lielākām atmiņas prasībām un laika patēriņu.

XZ saspiešanas rīka izveidotajam failam ir paplašinājums .xz. Lai saspiestu vienu failu, varat tieši piezvanīt XZ rīkam.

$xz<iespēja> <failu>

Piemēram, palaidiet šādu komandu, lai saspiestu failu test1.txt.

$xz-vtest1.txt

Līdzīgi kā citas minētās saspiešanas metodes, xz atbalsta arī dažādus saspiešanas stipruma diapazonus, sākot no 1 (zemākā saspiešana, ātrākais) līdz 9 (labākais saspiešana, lēnākais). Ja jūs neņemat vērā laiku un vienkārši vēlaties ietaupīt vietu, tad dodieties uz galējībām.

$xz-v -9 <failu>

Lai no visiem testa failiem izveidotu saspiestu XZ failu, palaidiet šo komandu.

$darva -cvJftest.tar.xz*

Šeit izvades faila lielums ir 153,7 MB.

Saspiestu arhīvu izvilkšana

Mūsu izveidoto arhīvu izvilkšana ir vieglāka nekā to izveide. Lai izvilktu zip failu, izmantojiet šādu komandu struktūru.

$izpakot <faila nosaukums>.zip-d <galamērķi>

Lai iegūtu mūsu izveidoto zip arhīvu, palaidiet šo komandu. Tas izvilks visu saturu tajā pašā direktorijā.

$izpakottest.zip

Lai iegūtu darvu, tar.gz, tar.bz2 un tar.xz arhīvus, mums jāizmanto darva rīks. Lai izvilktu visus tos, var izmantot šādu darvas komandu.

$darva -xvf <arhīva_faila nosaukums>

Piemēram, izvilksim visus failus no saspiestā arhīva bz2.

$darva -xvftest.tar.bz2

Lai atspiestu gzip (nevis tar.gz) failu, palaidiet šo komandu.

$gzip -d <gzip_file>

Līdzīgi šī komanda izspiest bzip2 arhīvu.

$bzip2 -d <bzip2_file>

Tā pati komandu struktūra attiecas uz xz arhīvu.

$xz-d <xz_file>

Galīgās domas

Cerams, ka tagad jums ir pietiekami daudz zināšanu, lai risinātu saspiešanas uzdevumus dažādos apstākļos. Atkarībā no konkrētās prasības visas saspiešanas metodes piedāvā ļoti pievilcīgas funkcijas.

Jāatzīmē viena svarīga lieta, ka saspiešanas rezultāts visu laiku nebūs vienāds. Ja tiek ievadīti dažādi dati, izvade būs atšķirīga. Piemēram, dažos gadījumos xz var piedāvāt ārprātīgu saspiešanas rezultātu, turpretī šajā piemērā tas nebija. Tas pats attiecas uz citām metodēm.

Lai uzzinātu vairāk par šiem rīkiem, apskatiet to attiecīgo rokasgrāmatu.

$cilvēks rāvējslēdzējs