Mga Pagpipilian at Paghahambing ng File ng Linux File

Linux File Compression Options



Ang compression, sa pangkalahatan, ay isang kapaki-pakinabang na pamamaraan na mahalagang pag-encode ng impormasyon gamit ang mas kaunting data kaysa sa orihinal. Sa kaso ng Linux, mayroong iba't ibang mga pagpipilian sa compression, bawat isa ay may sariling mga pakinabang.

Ang isang pangkalahatang distro ng Linux ay nag-aalok ng pag-access sa isang maliit na talagang kapaki-pakinabang at simpleng mga mekanismo ng pag-compress. Magtutuon lamang ang artikulong ito sa kanila.







Mga uri ng compression

Ang compression ay naka-encode at kumakatawan sa impormasyon gamit ang mas kaunting mga piraso kaysa sa orihinal na ito. Sa kaso ng compression ng file, ang isang paraan ng compression ay gumagamit ng sarili nitong algorithm at pagkalkula sa matematika upang makabuo ng isang output na sa pangkalahatan ay mas mababa sa laki ng orihinal na file. Dahil sa kung paano gumagana ang iba't ibang compression at ang random na likas na katangian ng mga file, ang mileage ay maaaring mag-iba nang malaki.



Mayroong 2 uri ng compression.



  • Lossy compression : Ito ay isang mapanganib na uri ng compression na hindi ginagarantiyahan ang integridad ng data. Mahalaga, sa sandaling nai-compress, may panganib na ang orihinal na file ay hindi maitayo muli gamit ang naka-compress na archive.
    Ang isang solidong halimbawa ng ganitong uri ng compression ay ang kilalang format ng MP3. Kapag nilikha ang isang MP3 mula sa orihinal na audio file, makabuluhang mas maliit ito kaysa sa orihinal na file ng pinagmulan ng musika. Ito ay sanhi ng pagkawala ng ilang kalidad ng audio.
  • Walang compression : Ito ang pinakalawak na ginagamit na uri ng compression. Gamit ang isang lossless compression na pamamaraan, ang orihinal na file ay maaaring muling maitayo mula sa naka-compress na file. Ang mga pamamaraan ng compression na tatalakayin ko sa artikulong ito ay lahat ng mga pamamaraan ng compression na walang pagkawala.

Compression ng Linux

Ang karamihan ng mga pamamaraan ng pag-compress ay magagamit mula sa tool alkitran . Tulad ng para sa compression ng zip, gagamitin namin ang zip kasangkapan Ipagpalagay na ang iyong system ay mayroon nang naka-install na mga tool na ito, magsimula na tayo.





Sa una, kailangan namin ng isang file ng pagsubok. Patakbuhin ang sumusunod na utos upang lumikha ng isa.

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



Lilikha ito ng isang file ng teksto na may sukat na 20MB.

Ngayon, gumawa tayo ng 10 kopya ng file. Sama-sama, 200 MB ito.

Zip Para sa Pag-compress

Ang zip ay medyo karaniwan. Para sa paglikha ng isang zip file, ang tool ng zip ay nangangailangan ng sumusunod na istraktura ng utos.

$zip <output>.zip<input>

Upang mai-compress ang lahat ng mga file sa ilalim ng direktoryo ng pagsubok sa isang solong zip file, patakbuhin ang utos na ito.

$zippagsubok.zip*

Ang laki ng pag-input ay 200 MB. Pagkatapos ng compression, ngayon ay 152 MB!

Bilang default, ilalapat ng tool ng zip ang compression ng DEFLATE. Gayunpaman, may kakayahang gumamit din ng compression ng bzip2. Hindi lamang iyon, maaari ka ring lumikha ng mga zip file na protektado ng password! Matuto nang higit pa tungkol sa zip .

Tar para sa Compression sa Linux

Ang tar ay hindi isang pamamaraan ng pag-compress. Sa halip, madalas itong ginagamit para sa paglikha ng mga archive. Gayunpaman, maaari itong magpatupad ng isang bilang ng mga tanyag na pamamaraan ng compression sa archive.

Para sa paghawak ng tar (na kilala rin bilang tarball) archive, mayroong tool sa alkitran. Matuto nang higit pa tungkol sa alkitran. Pangkalahatan, ang tool ng alkitran ay gumagamit ng sumusunod na istraktura ng utos.

$alkitran <mga pagpipilian> <output_file> <input>

Upang idagdag ang mga file ng pagsubok sa isang archive ng tar, patakbuhin ang sumusunod na utos.

$alkitran -cvfpagsubok.tar*

Dito, nananatiling pareho ang laki ng file.

Gzip para sa Compression sa Linux

Ang GNU Zip o gzip ay isa pang tanyag na pamamaraan ng pag-compress na, sa palagay ko, ay mas mahusay kaysa sa tradisyunal na zip dahil sa mas mahusay nitong compression. Ito ay isang open-source na produkto na nilikha nina Mark Adler at Jean-Loup Gailly na orihinal na nakalaan upang palitan ang UNIX siksikin kagamitan.

Para sa pamamahala ng mga archive ng gzip, mayroong 2 tool na magagamit: alkitran at gzip. Suriin natin ang pareho sa kanila.

Una, ang tool na gzip. Narito ang hitsura ng istraktura ng utos ng gzip.

$gzip <pagpipilian> <input>

Halimbawa, ang sumusunod na utos ay papalitan ang test1.txt ng test1.txt.gz compressed file.

$gzip -vpagsubok1.txt

Kung nais mong i-compress ang isang buong direktoryo gamit ang gzip, patakbuhin ang utos na ito. Dito, ang bandila ng -r ay para sa recursive compression. Dadaan ang Gzip sa lahat ng mga folder at i-compress ang (mga) indibidwal na file sa bawat isa sa kanila.

$gzip -r <folder_path>

Sinusuportahan ng Gzip ang iba't ibang halaga ng lakas ng compression, simula sa 1 (hindi bababa sa compression, pinakamabilis) hanggang 9 (pinakamahusay na compression, pinakamabagal).

$gzip -v -9 <file>

Para sa mas mahusay na kontrol sa output at kadalian ng paggamit, ang alkitran ay mas mahusay para sa gawain. Patakbuhin ang sumusunod na utos.

$alkitran -cvzfpagsubok.tar.gz*

Ang resulta ay katulad ng zip gamit ang DEFLATE, na nagreresulta sa 152 MB pagkatapos ng compression.

Bzip2 para sa Compression sa Linux

Ang Bzip2 ay isang libre at open-source na tool na gumagamit ng Burrows-Wheeler algorithm para sa compression. Unang ipinakilala noong 1996, ang bzip2 ay mabigat na ginamit bilang isang kahalili sa compression ng gzip.

Tulad ng gzip, mayroong 2 mga tool upang gumana sa bzip2: tar at bzip2.

Gumagana ang tool na bzip2 katulad ng tool na gzip. Maaari lamang itong gumana sa isang solong file nang paisa-isa. Narito ang istraktura ng utos.

$bzip2 <pagpipilian> <input>

I-compress natin ang file na test1.txt. Dito, ang flag na -v ay para sa mode na verbose.

$bzip2 -vpagsubok1.txt

Katulad ng gzip, sinusuportahan din ng bzip2 ang iba't ibang antas ng compression, simula sa 1 (default, mas mababa ang paggamit ng memorya) hanggang 9 (matinding compression, mataas na paggamit ng memorya).

$bzip2 -v -9 <file>

Ang mas mahusay na paraan ng paggamit ng compression ng bzip2 ay sa pamamagitan ng paggamit ng alkitran. Gamitin ang sumusunod na utos.

$alkitran -cvjfpagsubok.tar.bz2*

Ang compression ay bahagyang napabuti kaysa sa mga nauna. Ngayon, ang laki ng file ay nabawasan sa 151.7 MB.

XZ para sa Compression sa Linux

Ito ay isang kamag-anak na bagong dating sa larangan ng compression. Unang inilabas noong 2009, nakakita ito ng matatag na paglaki ng paggamit mula noon.

Gumagamit ang xz compression tool ng LZMA2 algorithm na kilala para sa mas malaking compression ratio kumpara sa gzip at bzip2, ginagawa itong isang mahusay na pagpipilian kapag nais mong i-save ang maximum na dami ng disk space. Gayunpaman, kasama nito ang gastos ng mas mataas na mga kinakailangan sa memorya at pagkonsumo ng oras.

Ang file na nilikha ng tool ng XZ compression ay mayroong extension .xz. Para sa pag-compress ng isang solong file, maaari kang direktang tumawag sa tool na XZ.

$xz<pagpipilian> <file>

Halimbawa, patakbuhin ang sumusunod na utos upang i-compress ang test1.txt file.

$xz-vpagsubok1.txt

Katulad ng iba pang mga pamamaraan ng compression na nabanggit, sinusuportahan din ng xz ang iba't ibang saklaw ng lakas ng compression, simula sa 1 (pinakamababang compression, pinakamabilis) hanggang 9 (pinakamahusay na compression, pinakamabagal). Kung wala kang anumang pagmamalasakit sa oras at nais lamang makatipid ng puwang, pagkatapos ay magpunta sa labis.

$xz-v -9 <file>

Upang lumikha ng isang naka-compress na XZ file mula sa lahat ng mga file ng pagsubok, patakbuhin ang utos na ito.

$alkitran -cvJfpagsubok.tar.xz*

Dito, ang laki ng output ng file ay 153.7 MB.

Kinukuha ang mga naka-compress na archive

Ang pagkuha ng mga archive na nilikha namin ay mas madali kaysa sa paglikha ng mga ito. Upang kumuha ng isang zip file, gamitin ang sumusunod na istraktura ng utos.

$i-unzip <filename>.zip-d <patutunguhan>

Upang makuha ang zip archive na nilikha namin, patakbuhin ang utos na ito. Aalisin nito ang lahat ng mga nilalaman sa parehong direktoryo.

$i-unzippagsubok.zip

Para sa pagkuha ng mga archive na tar, tar.gz, tar.bz2 at tar.xz, kailangan naming gamitin ang alkitran kasangkapan Ang sumusunod na utos ng alkitran ay nalalapat para sa pagkuha ng lahat ng mga ito.

$alkitran -xvf <archive_filename>

Halimbawa, kunin natin ang lahat ng mga file mula sa naka-compress na archive ng bz2.

$alkitran -xvfpagsubok.tar.bz2

Upang ma-decompress ang isang gzip (hindi tar.gz) file, patakbuhin ang utos na ito.

$gzip -d <gzip_file>

Katulad nito, ang sumusunod na utos ay magde-decompress sa bzip2 archive.

$bzip2 -d <bzip2_file>

Nalalapat ang parehong istraktura ng utos para sa xz archive.

$xz-d <xz_file>

Pangwakas na saloobin

Inaasahan ko, ngayon mayroon kang sapat na kaalaman upang mahawakan ang mga gawain sa compression sa iba't ibang mga pangyayari. Nakasalalay sa tukoy na kinakailangan, ang lahat ng mga pamamaraan ng compression ay nag-aalok ng mga kaakit-akit na tampok.

Ang isang mahalagang bagay na dapat tandaan ay, ang resulta ng compression ay hindi magiging pareho sa lahat ng oras. Sa iba't ibang input ng data, magkakaiba ang output. Halimbawa, sa ilang mga kaso, ang xz ay maaaring mag-alok ng pagkabaliw na resulta ng pagsisiksik samantalang sa halimbawang ito, hindi. Parehas na para sa iba pang mga pamamaraan.

Upang matuto nang higit pa tungkol sa mga tool na ito, suriin ang kani-kanilang pahina ng tao.

$lalaki zip