compression adalah sebuah proses atau teknik untuk mengurangi ukuran data sebuah file, ini bisa dicapai dengan memanfaatkan sebuah algoritma tertentu yang bisa memanfaatkan sebuah patern dalam data untuk digunakan dalam pengurangan ukuran file
Kompresi terbagi menjadi 2:
Kompresi Lossless (Tanpa Kehilangan): Dalam kompresi lossless, data dikompresi tanpa kehilangan informasi apa pun. Ini berarti setelah data dikompresi dan kemudian didekompresi, data yang dihasilkan akan identik dengan data asli.
Kompresi Lossy (Dengan Kehilangan): Dalam kompresi lossy, beberapa informasi dihilangkan secara sengaja dari data. Ini menghasilkan ukuran file yang lebih kecil, tetapi data yang didekompresi mungkin tidak identik dengan data asli.
Sebelum menjelajah tentang compression anda perlu tahu dulu tentang Archiving. apa itu archiving? archiving adalah proses mengumpulkan beberapa file atau direktori menjadi satu file tunggal. yang kemudian file ini dapat dikompresi dengan alat alat kompresi.
tar adalah salah satu tool Archiving yang ada di linux. berikut contoh penggunaannya:
tar -cvf archive.tar file1 file2 directory
Dalam contoh di atas, -c digunakan untuk membuat arsip baru, -v menampilkan output secara terperinci saat proses berlangsung, dan -f digunakan untuk menentukan nama arsip.
Anda kemudian dapat menambahkan opsi kompresi seperti -z untuk gzip, -j untuk bzip2, atau -J untuk xz.
Alat compression yang ada di linux yang paling umum digunakan
Nama Alat Kompresi | Algoritma Kompresi |
---|---|
gzip | DEFLATE |
bzip2 | Burrows-Wheeler |
xz | LZMA |
zip | DEFLATE |
gzip adalah salah satu utilitas kompresi yang umum digunakan di lingkungan Linux. Ini menggunakan algoritma kompresi DEFLATE untuk mengurangi ukuran file. Berikut adalah cara penggunaan gzip:
gzip nama_file
Ini akan menghasilkan file berekstensi nama_file.gz
gunzip nama_file.gz
# atau bisa juga
gzip -d nama_file.gz
gzip -l nama_file.gz
bzip2 adalah utilitas kompresi yang umum digunakan di lingkungan Linux. Ini menggunakan algoritma kompresi Burrows-Wheeler untuk mengurangi ukuran file. Berikut adalah cara penggunaannya:
gzip nama_file
Ini akan menghasilkan file berekstensi nama_file.gz
gunzip nama_file.gz
# atau bisa juga
gzip -d nama_file.gz
bzcat nama_file.bz2 | wc -c
xz adalah utilitas kompresi yang umum digunakan di lingkungan Linux. Ini menggunakan algoritma kompresi LZMA (Lempel-Ziv-Markov chain algorithm) untuk mengurangi ukuran file.
xz sering digunakan di Linux karena tingkat kompresi yang tinggi dan kemampuan untuk mengkompresi file dengan ukuran besar. Meskipun kompresi dengan xz dapat memakan waktu lebih lama dan membutuhkan sumber daya yang lebih besar dibandingkan dengan gzip atau bzip2, namun sering kali menghasilkan ukuran file yang lebih kecil.
Berikut adalah cara penggunaannya:
xz nama_file
Ini akan menghasilkan file berekstensi nama_file.xz
unxz nama_file.xz
# atau bisa juga
xz -d nama_file.xz
xz -l nama_file.xz
zip adalah utilitas kompresi yang umum digunakan di lingkungan Linux untuk mengompresi dan mengarsipkan satu atau beberapa file ke dalam satu file zip. Berikut adalah cara penggunaanya:
zip nama_file.zip file1 file2 folder1
# recusive untuk folder
zip -r nama_file.zip folder1
# Menambah file ke zip
zip -u nama_file_zip.zip file3
# Compressi dengan password
zip -r -e nama_file_zip.zip folder1
Ini akan menghasilkan file berekstensi nama_file.zip
unzip nama_file.zip
unzip -l nama_file.zip
Tar dilengkapi dengan beberapa opsi untuk mengkompresi dengan beberapa jenis kompresi didalam satu command.
# Compression
tar -czvf nama_file.tar.gz direktori/
# Decompression
tar -xzvf nama_file.tar.gz
# Compression
tar -cjvf nama_file.tar.bz2 direktori/
# Decompression
tar -xjvf nama_file.tar.bz2
# Compression
tar -cJvf nama_file.tar.xz direktori/
# Decompression
tar -xJvf nama_file.tar.xz
-c: Membuat file tar.
-x: Mengekstrak file dari arsip.
-z: Menggunakan gzip
-j: Menggunakan bzip2
-J: Menggunakan xz
-v: Mode verbose (menampilkan detail saat proses berlangsung).
-f: Menentukan nama file .