Opsi dan Perbandingan Kompresi File Linux

Linux File Compression Options



Kompresi, secara umum, adalah metode yang berguna yang pada dasarnya menyandikan informasi menggunakan lebih sedikit data daripada yang asli. Dalam kasus Linux, ada berbagai opsi kompresi, masing-masing dengan manfaatnya sendiri.

Distro Linux generik menawarkan akses ke beberapa mekanisme kompresi yang sangat berguna dan sederhana. Artikel ini hanya akan fokus pada mereka.







Jenis kompresi

Kompresi adalah pengkodean dan merepresentasikan informasi menggunakan bit yang lebih sedikit dari aslinya. Dalam kasus kompresi file, metode kompresi menggunakan algoritme dan perhitungan matematisnya sendiri untuk menghasilkan output yang umumnya lebih kecil dari ukuran file asli. Karena cara kerja kompresi yang berbeda dan sifat file yang acak, jarak tempuh dapat sangat bervariasi.



Ada 2 jenis kompresi.



  • Kompresi lossy : Ini adalah jenis kompresi berisiko yang tidak menjamin integritas data. Pada dasarnya, setelah dikompresi, ada risiko bahwa file asli tidak dapat direkonstruksi menggunakan arsip terkompresi.
    Contoh solid dari jenis kompresi ini adalah format MP3 yang terkenal. Saat MP3 dibuat dari file audio asli, ukurannya jauh lebih kecil daripada file musik sumber aslinya. Hal ini menyebabkan hilangnya beberapa kualitas audio.
  • Kompresi lossless : Ini adalah jenis kompresi yang paling banyak digunakan. Menggunakan metode kompresi lossless, file asli dapat direkonstruksi dari file terkompresi. Metode kompresi yang akan saya bahas dalam artikel ini adalah semua metode kompresi lossless.

Kompresi Linux

Sebagian besar metode kompresi tersedia dari alat ter . Adapun kompresi zip, kami akan menggunakan ritsleting alat. Dengan asumsi bahwa sistem Anda sudah menginstal alat-alat ini, mari kita mulai.





Pada awalnya, kita membutuhkan file tes. Jalankan perintah berikut untuk membuatnya.

$base64/dev/urandom| kepala -C 20000000 >file.txt



Ini akan membuat file teks dengan ukuran 20MB.

Sekarang, mari kita buat 10 salinan file. Bersama-sama, ini 200 MB.

Zip Untuk Kompresi

Zip cukup umum. Untuk membuat file zip, alat zip memerlukan struktur perintah berikut.

$ritsleting <keluaran>.ritsleting<memasukkan>

Untuk mengompres semua file di bawah direktori pengujian dalam satu file zip, jalankan perintah ini.

$ritsletingtes.zip*

Ukuran masukan adalah 200 MB. Setelah kompresi, sekarang menjadi 152 MB!

Secara default, alat zip akan menerapkan kompresi DEFLATE. Namun, itu juga mampu menggunakan kompresi bzip2. Tidak hanya itu, Anda juga dapat membuat file zip yang dilindungi kata sandi! Pelajari selengkapnya tentang zip .

Tar untuk Kompresi di Linux

Tar bukan metode kompresi. Sebaliknya, ini paling sering digunakan untuk membuat arsip. Namun, ia dapat menerapkan sejumlah metode kompresi populer ke arsip.

Untuk menangani arsip tar (juga dikenal sebagai tarball), ada alat tar. Pelajari lebih lanjut tentang tar. Umumnya, alat tar menggunakan struktur perintah berikut.

$ter <pilihan> <berkas keluaran> <memasukkan>

Untuk menambahkan file uji ke dalam arsip tar tunggal, jalankan perintah berikut.

$ter -cvftest.tar*

Di sini, ukuran file tetap sama.

Gzip untuk Kompresi di Linux

GNU Zip atau gzip adalah metode kompresi populer lainnya yang menurut saya lebih baik daripada zip tradisional karena kompresinya yang lebih baik. Ini adalah produk open-source yang dibuat oleh Mark Adler dan Jean-Loup Gailly yang awalnya ditujukan untuk menggantikan UNIX kompres kegunaan.

Untuk mengelola arsip gzip, ada 2 alat yang tersedia: tar dan gzip. Mari kita periksa keduanya.

Pertama, alat gzip. Beginilah tampilan struktur perintah gzip.

$gzip <pilihan> <memasukkan>

Misalnya, perintah berikut akan menggantikan file terkompresi test1.txt dengan test1.txt.gz.

$gzip -vtes1.txt

Jika Anda ingin mengompres seluruh direktori menggunakan gzip, jalankan perintah ini. Di sini, flag -r adalah untuk kompresi rekursif. Gzip akan menelusuri semua folder dan memampatkan file individual di masing-masing folder.

$gzip -R <folder_path>

Gzip mendukung berbagai nilai kekuatan kompresi, mulai dari 1 (kompresi terkecil, tercepat) hingga 9 (kompresi terbaik, paling lambat).

$gzip -v -9 <mengajukan>

Untuk kontrol yang lebih baik atas output dan kemudahan penggunaan, tar lebih baik untuk tugas tersebut. Jalankan perintah berikut.

$ter -cvzftest.tar.gz*

Hasilnya mirip dengan zip menggunakan DEFLATE, menghasilkan 152 MB setelah kompresi.

Bzip2 untuk Kompresi di Linux

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

Seperti gzip, ada 2 alat untuk bekerja dengan bzip2: tar dan bzip2.

Alat bzip2 bekerja mirip dengan alat gzip. Itu hanya dapat bekerja dengan hanya satu file pada satu waktu. Berikut struktur perintahnya.

$bzip2 <pilihan> <memasukkan>

Mari kita kompres file test1.txt. Di sini, flag -v adalah untuk mode verbose.

$bzip2 -vtes1.txt

Mirip dengan gzip, bzip2 juga mendukung tingkat kompresi yang berbeda, mulai dari 1 (default, penggunaan memori lebih sedikit) hingga 9 (kompresi ekstrem, penggunaan memori tinggi).

$bzip2 -v -9 <mengajukan>

Cara yang lebih baik untuk menggunakan kompresi bzip2 adalah dengan menggunakan tar. Gunakan perintah berikut.

$ter -cvjftest.tar.bz2*

Kompresi sedikit meningkat dari yang sebelumnya. Sekarang, ukuran file telah menyusut menjadi 151,7 MB.

XZ untuk Kompresi di Linux

Ini adalah pendatang baru di bidang kompresi. Pertama kali dirilis pada tahun 2009, telah melihat pertumbuhan penggunaan yang stabil sejak saat itu.

Alat kompresi xz menggunakan algoritme LZMA2 yang dikenal dengan rasio kompresi yang lebih besar dibandingkan dengan gzip dan bzip2, menjadikannya pilihan tepat saat Anda ingin menghemat ruang disk dalam jumlah maksimum. Namun, ini datang dengan biaya persyaratan memori yang lebih tinggi dan konsumsi waktu.

File yang dibuat oleh alat kompresi XZ memiliki ekstensi .xz. Untuk mengompresi satu file, Anda dapat langsung memanggil alat XZ.

$xz<pilihan> <mengajukan>

Misalnya, jalankan perintah berikut untuk mengompresi file test1.txt.

$xz-vtes1.txt

Serupa dengan metode kompresi lain yang disebutkan, xz juga mendukung berbagai rentang kekuatan kompresi, mulai dari 1 (kompresi terendah, tercepat) hingga 9 (kompresi terbaik, paling lambat). Jika Anda tidak memperhatikan waktu dan hanya ingin menghemat ruang, lakukan yang ekstrem.

$xz-v -9 <mengajukan>

Untuk membuat file XZ terkompresi dari semua file uji, jalankan perintah ini.

$ter -cvJftest.tar.xz*

Di sini, ukuran file output adalah 153,7 MB.

Mengekstrak arsip terkompresi

Mengekstrak arsip yang kami buat lebih mudah daripada membuatnya. Untuk mengekstrak file zip, gunakan struktur perintah berikut.

$buka ritsleting <nama file>.ritsleting-D <tujuan>

Untuk mengekstrak arsip zip yang kami buat, jalankan perintah ini. Ini akan mengekstrak semua konten dalam direktori yang sama.

$buka ritsletingtes.zip

Untuk mengekstrak arsip tar, tar.gz, tar.bz2 dan tar.xz, kita harus menggunakan ter alat. Perintah tar berikut ini berlaku untuk mengekstrak semuanya.

$ter -xvf <arsip_namafile>

Misalnya, mari kita ekstrak semua file dari arsip terkompresi bz2.

$ter -xvftest.tar.bz2

Untuk mendekompres file gzip (bukan tar.gz), jalankan perintah ini.

$gzip -D <gzip_file>

Demikian pula, perintah berikut akan mendekompres arsip bzip2.

$bzip2 -D <bzip2_file>

Struktur perintah yang sama berlaku untuk arsip xz.

$xz-D <file_xz>

Pikiran terakhir

Mudah-mudahan, sekarang Anda memiliki pengetahuan yang cukup untuk menangani tugas kompresi dalam keadaan yang berbeda. Tergantung pada kebutuhan spesifik, semua metode kompresi menawarkan fitur yang sangat menarik.

Satu hal penting yang perlu diperhatikan adalah, hasil kompresi tidak akan selalu sama. Dengan input data yang berbeda, outputnya akan berbeda. Misalnya, dalam beberapa kasus, xz dapat menawarkan hasil kompresi yang gila sedangkan dalam contoh ini tidak. Hal yang sama berlaku untuk metode lain.

Untuk mempelajari lebih mendalam tentang alat ini, lihat halaman manualnya masing-masing.

$pria ritsleting