Pilihan dan Perbandingan Pemampatan Fail Linux

Linux File Compression Options



Pemampatan, secara amnya, adalah kaedah berguna yang pada asasnya mengekod maklumat menggunakan data yang lebih sedikit daripada yang asal. Dalam kes Linux, terdapat pelbagai pilihan pemampatan, masing-masing mempunyai kelebihannya sendiri.

Distro Linux generik menawarkan akses kepada sebilangan mekanisme pemampatan yang sangat berguna dan sederhana. Artikel ini hanya akan memfokuskan kepada mereka.







Jenis pemampatan

Mampatan mengekod dan mewakili maklumat menggunakan bit yang lebih sedikit daripada yang semula. Dalam kes pemampatan fail, kaedah pemampatan menggunakan algoritma dan pengiraan matematiknya sendiri untuk menghasilkan output yang umumnya kurang dari ukuran fail asalnya. Kerana cara kerja pemampatan yang berbeza dan sifat fail secara rawak, jarak tempuh mungkin sangat berbeza.



Terdapat 2 jenis pemampatan.



  • Mampatan kerugian : Ini adalah jenis pemampatan berisiko yang tidak menjamin integriti data. Pada dasarnya, setelah dimampatkan, ada risiko fail asal tidak dapat dibina semula menggunakan arkib yang dimampatkan.
    Contoh tegas jenis pemampatan ini adalah format MP3 yang terkenal. Apabila MP3 dibuat dari fail audio asal, ia jauh lebih kecil daripada fail muzik sumber asal. Ini menyebabkan kehilangan kualiti audio.
  • Pemampatan tanpa kerugian : Ini adalah jenis pemampatan yang paling banyak digunakan. Dengan menggunakan kaedah pemampatan tanpa kerugian, fail asal dapat dibuat semula dari fail yang dimampatkan. Kaedah pemampatan yang akan saya bincangkan dalam artikel ini adalah semua kaedah pemampatan tanpa kerugian.

Pemampatan Linux

Sebilangan besar kaedah pemampatan tersedia dari alat tar . Untuk pemampatan zip, kita akan menggunakan zip alat. Dengan andaian bahawa sistem anda sudah memasang alat ini, mari kita mulakan.





Pada mulanya, kami memerlukan fail ujian. Jalankan arahan berikut untuk membuatnya.

$asas64/penipu/urawak| kepala -c 20000000 >fail.txt



Ia akan membuat fail teks dengan ukuran 20MB.

Sekarang, mari buat 10 salinan fail. Bersama-sama, ia 200 MB.

Zip Untuk Mampatan

Zip agak biasa. Untuk membuat fail zip, alat zip memerlukan struktur arahan berikut.

$zip <pengeluaran>.zip<input>

Untuk memampatkan semua fail di bawah direktori ujian dalam satu fail zip, jalankan perintah ini.

$zipujian.zip*

Saiz input adalah 200 MB. Setelah mampatan, kini 152 MB!

Secara lalai, alat zip akan menggunakan pemampatan DEFLATE. Namun, ia juga mampu menggunakan pemampatan bzip2. Bukan itu sahaja, anda juga boleh membuat fail zip yang dilindungi kata laluan! Ketahui lebih lanjut mengenai zip .

Tar untuk Mampatan di Linux

Tar bukan kaedah pemampatan. Sebaliknya, ia paling sering digunakan untuk membuat arkib. Walau bagaimanapun, ia dapat menerapkan sebilangan kaedah pemampatan yang popular ke arkib.

Untuk mengendalikan arkib tar (juga dikenali sebagai tarball), terdapat alat tar. Ketahui lebih lanjut mengenai tar. Secara amnya, alat tar menggunakan struktur arahan berikut.

$tar <pilihan> <fail keluaran> <input>

Untuk menambahkan fail ujian ke arkib tar tunggal, jalankan arahan berikut.

$tar -cvfujian.tar*

Di sini, saiz failnya tetap sama.

Gzip untuk Pemampatan di Linux

GNU Zip atau gzip adalah kaedah pemampatan popular lain yang, pada pendapat saya, lebih baik daripada zip tradisional kerana pemampatannya yang lebih baik. Ini adalah produk sumber terbuka yang dibuat oleh Mark Adler dan Jean-Loup Gailly yang pada asalnya ditakdirkan untuk menggantikan UNIX memampatkan utiliti.

Untuk menguruskan arkib gzip, terdapat 2 alat yang tersedia: tar dan gzip. Mari kita lihat kedua-duanya.

Pertama, alat gzip. Beginilah rupa struktur arahan gzip.

$gzip <pilihan> <input>

Contohnya, arahan berikut akan menggantikan test1.txt dengan fail termampat test1.txt.gz.

$gzip -vujian1.txt

Sekiranya anda ingin memampatkan keseluruhan direktori menggunakan gzip, jalankan perintah ini. Di sini, bendera -r adalah untuk pemampatan berulang. Gzip akan melalui semua folder dan memampatkan fail masing-masing di dalamnya.

$gzip -r <folder_path>

Gzip menyokong pelbagai nilai kekuatan mampatan, bermula dari 1 (paling sedikit pemampatan, terpantas) hingga 9 (mampatan terbaik, paling lambat).

$gzip -v -9 <fail>

Untuk kawalan yang lebih baik terhadap output dan kemudahan penggunaan, tar lebih baik untuk tugas tersebut. Jalankan arahan berikut.

$tar -cvzfujian.tar.gz*

Hasilnya serupa dengan zip menggunakan DEFLATE, menghasilkan 152 MB setelah pemampatan.

Bzip2 untuk Pemampatan di Linux

Bzip2 adalah alat sumber bebas dan terbuka yang menggunakan algoritma Burrows-Wheeler untuk pemampatan. Pertama kali diperkenalkan pada tahun 1996, bzip2 banyak digunakan sebagai alternatif untuk pemampatan gzip.

Seperti gzip, terdapat 2 alat untuk bekerjasama dengan bzip2: tar dan bzip2.

Alat bzip2 berfungsi serupa dengan alat gzip. Ia hanya boleh berfungsi dengan satu fail pada satu masa. Inilah struktur arahan.

$bzip2 <pilihan> <input>

Mari memampatkan fail test1.txt. Di sini, bendera -v adalah untuk mod verbose.

$bzip2 -vujian1.txt

Mirip dengan gzip, bzip2 juga menyokong tahap pemampatan yang berbeza, bermula dari 1 (lalai, kurang penggunaan memori) hingga 9 (mampatan ekstrem, penggunaan memori tinggi).

$bzip2 -v -9 <fail>

Cara penggunaan pemampatan bzip2 yang lebih baik adalah dengan menggunakan tar. Gunakan arahan berikut.

$tar -cvjfujian.tar.bz2*

Mampatan sedikit bertambah baik daripada yang sebelumnya. Sekarang, saiz fail telah menyusut menjadi 151.7 MB.

XZ untuk Pemampatan pada Linux

Ini adalah pendatang baru yang relatif dalam bidang pemampatan. Pertama kali dilancarkan pada tahun 2009, sejak itu sejak itu ia telah menyaksikan pertumbuhan penggunaan yang stabil.

Alat pemampatan xz menggunakan algoritma LZMA2 yang terkenal dengan nisbah mampatan yang lebih besar berbanding dengan gzip dan bzip2, menjadikannya pilihan yang baik apabila anda ingin menjimatkan jumlah maksimum ruang cakera. Walau bagaimanapun, ini datang dengan kos keperluan memori dan penggunaan masa yang lebih tinggi.

Fail yang dibuat oleh alat pemampatan XZ mempunyai peluasan .xz. Untuk memampatkan satu fail, anda boleh memanggil alat XZ secara langsung.

$xz<pilihan> <fail>

Sebagai contoh, jalankan arahan berikut untuk memampatkan fail test1.txt.

$xz-vujian1.txt

Sama seperti kaedah pemampatan lain yang disebutkan, xz juga menyokong pelbagai kekuatan mampatan, bermula dari 1 (mampatan terendah, terpantas) hingga 9 (mampatan terbaik, paling lambat). Sekiranya anda tidak menghiraukan masa dan hanya mahu menjimatkan ruang, maka lakukanlah yang teruk.

$xz-v -9 <fail>

Untuk membuat fail XZ yang dimampatkan dari semua fail ujian, jalankan arahan ini.

$tar -cvJfujian.tar.xz*

Di sini, saiz fail output adalah 153.7 MB.

Mengekstrak arkib termampat

Mengekstrak arkib yang kami buat lebih mudah daripada membuatnya. Untuk mengekstrak fail zip, gunakan struktur arahan berikut.

$buka zip <nama fail>.zip-d <destinasi>

Untuk mengekstrak arkib zip yang kami buat, jalankan arahan ini. Ini akan mengekstrak semua kandungan dalam direktori yang sama.

$buka zipujian.zip

Untuk mengekstrak arkib tar, tar.gz, tar.bz2 dan tar.xz, kita harus menggunakan arkib tar alat. Perintah tar berikut boleh digunakan untuk mengekstrak semuanya.

$tar -xvf <nama_farkibina>

Sebagai contoh, mari kita ekstrak semua fail dari arkib mampatan bz2.

$tar -xvfujian.tar.bz2

Untuk menyahmampatkan fail gzip (bukan tar.gz), jalankan arahan ini.

$gzip -d <gzip_file>

Begitu juga, arahan berikut akan menyahmampatkan arkib bzip2.

$bzip2 -d <bzip2_file>

Struktur arahan yang sama berlaku untuk arkib xz.

$xz-d <xz_file>

Pemikiran terakhir

Mudah-mudahan, sekarang anda mempunyai pengetahuan yang mencukupi untuk menangani tugas pemampatan dalam keadaan yang berbeza. Bergantung pada keperluan khusus, semua kaedah pemampatan menawarkan ciri yang sangat menarik.

Satu perkara penting yang perlu diberi perhatian adalah, hasil pemampatan tidak akan sama sepanjang masa. Dengan input data yang berbeza, output akan berbeza. Sebagai contoh, dalam beberapa kes, xz dapat memberikan hasil pemampatan gila sedangkan dalam contoh ini, tidak. Begitu juga dengan kaedah lain.

Untuk mengetahui lebih mendalam mengenai alat ini, periksa halaman manual masing-masing.

$lelaki zip