Cara Zip dan Unzip File Dengan Gzip di Linux

Diterbitkan: 2022-06-28
Terminal Linux dengan latar belakang merah.
fatmawati achmad zaenuri/Shutterstock.com

Ada banyak utilitas kompresi file, tetapi yang pasti Anda temukan di setiap distribusi Linux adalah gzip . Jika Anda hanya belajar menggunakan satu alat kompresi, itu harus gzip .

TERKAIT: Bagaimana Cara Kerja Kompresi File?

Algoritma dan Pohon

Alat kompresi data gzip ditulis pada awal 1990-an, dan masih ditemukan di setiap distribusi Linux. Ada alat kompresi lain yang tersedia, tetapi tidak peduli komputer Linux mana yang Anda butuhkan untuk bekerja, Anda akan menemukan gzip di dalamnya. Jadi, jika Anda tahu cara menggunakan gzip , Anda dapat melakukannya tanpa perlu menginstal apa pun.

gzip adalah implementasi dari algoritma DEFLATE yang ditemukan—dan dipatenkan—oleh Phil Katz dari PKZIP yang terkenal. Algoritma DEFLATE ditingkatkan pada algoritma kompresi sebelumnya yang semuanya dioperasikan pada variasi tema. Data yang akan dikompresi dipindai, dan string unik diidentifikasi dan ditambahkan ke pohon biner.

String unik dialokasikan token ID unik berdasarkan posisinya di pohon . Token digunakan untuk mengganti string dalam data dan, karena token lebih kecil dari data yang diganti, file dikompresi. Mengganti token untuk string asli akan membuat data kembali ke kondisi tidak terkompresi.

Tolok Ukur: Apa Format Kompresi File Terbaik?
Tolok Ukur TERKAIT : Apa Format Kompresi File Terbaik?

Algoritma DEFLATE menambahkan twist bahwa string yang paling sering ditemui dialokasikan token terkecil dan string yang paling jarang ditemui dialokasikan yang lebih besar. Algoritma DEFLATE juga menggabungkan ide dari dua metode kompresi sebelumnya, pengkodean Huffman dan kompresi LZ77.

Pada saat penulisan, algoritma DEFLATE berusia hampir tiga dekade. Tiga dekade lalu biaya penyimpanan data tinggi dan kecepatan transmisi lambat. Kompresi data sangat penting.

4 Cara Mengosongkan Ruang Disk di Linux
TERKAIT 4 Cara Mengosongkan Ruang Disk di Linux

Penyimpanan data saat ini jauh lebih murah, dan kecepatan transmisi jauh lebih cepat. Tetapi kami memiliki lebih banyak data untuk disimpan, dan orang-orang di seluruh dunia mengakses penyimpanan cloud dan layanan streaming. Kompresi data masih sangat penting, bahkan jika semua yang Anda lakukan adalah mengecilkan sesuatu yang perlu Anda unggah atau kirimkan, atau Anda mencoba mencakar kembali beberapa ruang pada hard drive lokal.

Perintah gzip

Semakin besar file, semakin baik kompresinya. Ini karena dua alasan. Salah satunya adalah akan ada banyak pengulangan, urutan byte yang identik di seluruh file besar. Alasan kedua adalah daftar string dan token perlu disimpan dalam file terkompresi agar dekompresi dapat dilakukan. Dengan file yang sangat kecil overhead dapat menghapus manfaat dari kompresi. Tetapi bahkan dengan file yang cukup kecil, kemungkinan akan ada pengurangan ukuran.

Mengompresi File

Untuk mengompres file, yang perlu Anda lakukan hanyalah meneruskan nama file ke perintah gzip . Kami akan memeriksa ukuran asli file, mengompresnya, dan kemudian memeriksa ukuran file terkompresi.

 ls -lh calc-sheet.ods
 gzip calc-sheet.ods
 ls -lh kal-* 

Mengompresi spreadsheet

File asli, spreadsheet bernama “calc-sheet.ods” berukuran 11 KB, dan file terkompresi—juga dikenal sebagai file arsip—berukuran 9,3 KB. Perhatikan bahwa nama file arsip adalah nama file asli dengan ".gz" ditambahkan padanya.

Penggunaan pertama dari perintah ls menargetkan file tertentu, spreadsheet. Penggunaan kedua ls mencari semua file yang dimulai dengan "calc-" tetapi hanya menemukan file terkompresi. Itu karena, secara default, gzip membuat file arsip dan menghapus file aslinya.

Itu bukan masalah. Jika Anda membutuhkan file asli, Anda dapat mengambilnya dari file arsip. Tetapi jika Anda lebih suka menyimpan file asli, Anda dapat menggunakan opsi -k (simpan).

 gzip -k calc-sheet.ods
 ls -lh calc-sheet.* 

Mengompresi file dan mempertahankan file asli

Kali ini file ODS asli dipertahankan.

Mendekompresi File

Untuk mendekompresi file arsip GZ, gunakan opsi -d (dekompresi). Ini akan mengekstrak file terkompresi dari arsip dan mendekompresinya sehingga tidak dapat dibedakan dari file aslinya.

 ls kal-sheet.*
 gzip -d calc-sheet.ods.gz
 ls kal-sheet.* 

Mendekompresi file dengan gzip

Kali ini, kita dapat melihat bahwa gzip telah menghapus file arsip setelah mengekstrak file aslinya. Untuk menyimpan file arsip, kita perlu menggunakan opsi -k (keep) lagi, serta opsi -d (dekompresi).

 ls kal-sheet.*
 gzip -d calc-sheet.ods.gz
 ls kal-sheet.* 

Mendekompresi file dan menyimpan file arsip

Kali ini, gzip tidak menghapus file arsip.

TERKAIT: Mengapa File yang Dihapus Dapat Dipulihkan, dan Bagaimana Anda Dapat Mencegahnya

Dekompresi dan Timpa

Jika Anda mencoba mengekstrak file di direktori tempat file asli—atau file berbeda dengan file yang sama—ada, gzip akan meminta Anda memilih untuk mengabaikan ekstraksi atau menimpa file yang ada.

 gzip -d file teks.txt.gz 

Timpa prompt dari gzip ketika file dalam arsip sudah ada file di direktori

Jika Anda tahu sebelumnya bahwa Anda senang memiliki file di direktori yang ditimpa oleh file dari arsip, gunakan opsi -f (force).

 gzip -df file teks.txt.gz 

Memaksa menimpa file yang ada

File ditimpa dan Anda diam-diam kembali ke baris perintah.

Mengompresi Pohon Direktori

Opsi -r (rekursif) menyebabkan gzip mengompresi file di seluruh pohon direktori. Tapi hasilnya mungkin tidak seperti yang Anda harapkan.

Inilah pohon direktori yang akan kita gunakan dalam contoh ini. Direktori masing-masing berisi file teks.

 tingkat pohon1 

Uji struktur pohon direktori

Mari gunakan gzip pada pohon direktori dan lihat apa yang terjadi.

 gzip -r level1/
 tingkat pohon1 

Struktur direktori setelah menjalankan gzip di atasnya

Hasilnya adalah gzip telah membuat file arsip untuk setiap file teks dalam struktur direktori. Itu tidak membuat arsip dari seluruh pohon direktori. Faktanya, gzip hanya dapat menempatkan satu file dalam satu arsip.

Kita dapat membuat file arsip yang berisi pohon direktori dan semua filenya, tetapi kita perlu menjalankan perintah lain. Program tar digunakan untuk membuat arsip dari banyak file, tetapi tidak memiliki rutinitas kompresinya sendiri. Tetapi dengan menggunakan opsi yang sesuai dengan tar , kita dapat menyebabkan tar mendorong file arsip melalui gzip . Dengan begitu kita mendapatkan file arsip terkompresi dan arsip multi-file atau multi-direktori.

 tar -czvf level1.tar.gz level1

Opsi tar adalah:

  • c : Buat arsip.
  • z : Dorong file melalui gzip .
  • v : Modus verbose. Cetak di jendela terminal apa yang sedang dilakukan tar .
  • f level1.tar.gz : Nama file yang akan digunakan untuk file arsip.

Output dari tar bekerja melalui pohon direktori

Ini mengarsipkan struktur pohon direktori dan semua file di dalam pohon direktori.

TERKAIT: Cara Mengompres dan Mengekstrak File Menggunakan Perintah tar di Linux

Mendapatkan Informasi Tentang Arsip

Opsi -l (daftar) menyediakan beberapa informasi tentang file arsip. Ini menunjukkan kepada Anda ukuran file yang dikompresi dan tidak dikompresi dalam arsip, rasio kompresi, dan nama file.

 gzip -l level1.tar.gz
 gzip -l file teks.txt.gz 

Menggunakan opsi daftar -l untuk melihat statistik kompresi untuk arsip

Anda dapat memeriksa integritas file arsip dengan opsi -t (test).

 gzip -t level1.tar.gz 

Menguji arsip dengan opsi -t

Jika semuanya baik-baik saja, Anda diam-diam kembali ke baris perintah. Tidak ada berita adalah berita baik.

Jika arsip rusak atau bukan arsip, Anda akan diberitahu tentang hal itu.

 gzip -t not-an-archive.gz 

Menggunakan opsi -t untuk menguji file yang bukan arsip

Kecepatan Versus Kompresi

Anda dapat memilih untuk memprioritaskan kecepatan pembuatan arsip atau tingkat kompresi. Anda melakukan ini dengan memberikan nomor sebagai opsi, dari -1 hingga top -9 . Opsi -1 memberikan kecepatan tercepat dengan mengorbankan kompresi dan -9 memberikan kompresi tertinggi dengan mengorbankan kecepatan.

Kecuali Anda memberikan salah satu opsi ini, gzip menggunakan -6 .

 gzip -1 calc-sheet.ods
 ls -lh calc-sheet.ods.gz
 gzip -9 calc-sheet.ods
 ls -lh calc-sheet.ods.gz
 gzip -6 calc-sheet.ods
 ls -lh calc-sheet.ods.gz 

Menggunakan gzip dengan prioritas berbeda untuk kecepatan dan kompresi

Dengan file sekecil ini, kami tidak melihat perbedaan yang signifikan dalam kecepatan eksekusi, tetapi ada sedikit perbedaan dalam kompresi.

Menariknya, tidak ada perbedaan antara menggunakan kompresi level 9 dan kompresi level 6. Anda hanya dapat memeras begitu banyak kompresi dari file apa pun dan dalam hal ini, batas itu tercapai dengan kompresi level 6. Mengangkatnya hingga 9 tidak membawa pengurangan lebih lanjut dalam ukuran file. Dengan file yang lebih besar, perbedaan antara level 6 dan level 9 akan lebih jelas.

Dikompresi, Tidak Dilindungi

Jangan salah mengartikan kompresi sebagai enkripsi atau bentuk perlindungan apa pun. Mengompresi file tidak memberikan keamanan atau privasi yang ditingkatkan. Siapa pun yang memiliki akses ke file Anda dapat menggunakan gzip untuk mendekompresnya.

TERKAIT: Daftar 10 File atau Direktori Terbesar di Linux