Perintah gunzip Linux: dekompresi gzip dan simpan berkas .gz

Perintah gunzip mendekompresi data gzip pada berkas .gz. Secara bawaan, berkas terkompresi biasanya diganti dengan hasil dekompresi; gunakan -k atau -c jika berkas .gz harus tetap disimpan.

Pada GNU gzip, gunzip menjalankan fungsi dekompresi yang juga tersedia melalui gzip -d. Melepas lapisan gzip pada .tar.gz menghasilkan arsip .tar, bukan langsung mengeluarkan semua berkas di dalam arsip tersebut.

Sintaks dan berkas yang perlu disiapkan

gunzip [opsi] berkas.gz [berkas.gz ...]

opsi dan berkas.gz adalah penanda. Periksa gunzip --version dan man gunzip untuk pilihan pada lingkungan Anda. Siapkan berkas terkompresi yang dapat dibaca, ruang untuk hasil dekompresi, serta lokasi tujuan yang sesuai.

Contoh berikut memakai report.log.gz. Jalankan setiap pilihan pada salinan percobaan yang baru atau siapkan kembali kondisi awalnya: contoh pertama menghapus .gz setelah berhasil, sedangkan contoh kedua memerlukan .gz masih tersedia dan report.log belum ada. Untuk menyiapkan berkas latihan sendiri, lihat gzip untuk mengompresi sambil mempertahankan sumber.

Periksa apakah report.log sudah ada sebelum memulai. Jangan menebak bahwa data yang diekstrak akan selalu lebih kecil daripada ukuran .gz; sediakan ruang untuk ukuran hasilnya, bukan hanya ukuran unduhan terkompresi.

Mendekompresi dengan perilaku bawaan

gunzip report.log.gz

Jika operasi berhasil dalam kondisi contoh, report.log dibuat dan report.log.gz dihapus. gunzip biasanya tidak mencetak isi berkas atau pesan sukses. Periksa status keluar serta pesan galat sebelum menganggap hasilnya siap digunakan.

Jika report.log sudah ada, alat dapat meminta konfirmasi atau menolak penimpaan, bergantung pada konteks terminal. Jangan menambahkan -f sebagai langkah otomatis. Pilih nama hasil berbeda atau pindahkan salinan lama melalui prosedur yang sesuai bila Anda memang perlu mempertahankannya.

Mempertahankan berkas terkompresi

gunzip -k report.log.gz

Opsi -k mempertahankan report.log.gz setelah membuat report.log. Hasil yang diharapkan adalah kedua berkas tersedia, dengan isi report.log sesuai data yang dikompresi. Ini berguna jika .gz masih diperlukan untuk transfer atau pemeriksaan ulang.

-k tidak mengatasi benturan nama report.log yang sudah ada. Mengulang contoh kedua sesudah contoh pertama tanpa menyiapkan ulang berkas dapat gagal karena masukan hilang atau hasil lama masih ada. Bedakan galat kondisi berkas dari galat format kompresi.

Menulis hasil ke nama terpisah

gunzip -c report.log.gz > restored-report.log

-c mengirim data yang dipulihkan ke keluaran standar dan mempertahankan report.log.gz. Shell menyimpan data itu sebagai restored-report.log melalui operator >. Pastikan nama tujuan memang baru atau boleh diganti.

Pengalihan shell dapat mengosongkan berkas tujuan sebelum gunzip berjalan. Jangan mengarahkan hasil ke report.log.gz sendiri, karena masukan dapat terpotong lebih dahulu. Jika terjadi galat dekompresi, berkas keluaran terpisah juga dapat kosong atau hanya berisi sebagian data; periksa status proses sebelum menggunakannya.

Memeriksa hasil dekompresi

Siapkan note.txt.gz pada direktori percobaan tanpa note.txt yang sudah ada. Jika Anda membuatnya dari teks hello dan satu baris baru, itulah isi yang semestinya pulih setelah perintah berikut:

gunzip note.txt.gz
ls -l note.txt

gunzip sendiri biasanya selesai tanpa keluaran, lalu ls -l menampilkan informasi note.txt. Nama, ukuran, waktu, dan izin yang terlihat mengikuti berkas serta lingkungan Anda. Pastikan note.txt dapat dibaca dan isinya benar; keberadaan nama saja belum membuktikan isi yang diharapkan.

Blok ini memuat dua perintah. Jika ingin memeriksa status gunzip, lakukan segera setelah baris pertama, sebelum ls mengganti status terakhir. Pada Bash, echo $? memeriksa status perintah terakhir. GNU gzip menggunakan 0 untuk sukses, 1 untuk galat, dan 2 untuk peringatan.

Untuk pemeriksaan awal tanpa membuat berkas hasil, gunakan gunzip -t note.txt.gz saat .gz masih tersedia. Pemeriksaan integritas aliran ini bukan verifikasi asal pengirim atau kecocokan dengan dokumen yang dimaksud. Bandingkan isi hasil atau checksum, yaitu nilai ringkas isi berkas, dengan pembanding yang benar bila data penting.

Opsi utama

Opsi Fungsi dan batasnya
-k Mempertahankan berkas terkompresi masukan.
-c Menulis data hasil dekompresi ke keluaran standar.
-t Menguji integritas tanpa membuat berkas dekompresi.
-l Menampilkan informasi ukuran serta rasio kompresi; bukan daftar anggota arsip tar.
-f Memaksa pemrosesan, termasuk penimpaan tertentu; gunakan hanya setelah memeriksa hasil yang akan diganti.

Bedakan -l pada gunzip dari tindakan daftar tar. Informasi ukuran data terkompresi tidak menunjukkan semua nama berkas yang mungkin tersimpan pada arsip di dalamnya. Untuk perilaku versi dan format, gunakan manual GNU gzip dan gunzip yang diterbitkan Debian.

Mengapa .tar.gz masih memerlukan tar?

gzip adalah lapisan kompresi data, sedangkan tar menyimpan kumpulan nama dan struktur direktori. gunzip backup.tar.gz biasanya menghasilkan backup.tar dan mengganti masukan .gz. Anggota arsip belum diekstrak pada tahap ini.

Periksa daftar arsip terkompresi dengan pola tar -tzf backup.tar.gz sebelum ekstraksi. Pola tar -xzf backup.tar.gz -C restore/ dapat melepas gzip sekaligus mengekstrak anggota ke restore/ yang sudah disiapkan. Jika gzip sudah dilepas dan berkasnya tinggal backup.tar, gunakan tindakan tar tanpa -z untuk arsip itu.

Periksa jalur anggota dan pilih direktori kosong agar tidak berbenturan dengan berkas kerja. Panduan tar untuk daftar anggota dan ekstraksi ke direktori tertentu menjelaskan struktur hasil dan pemeriksaan tujuan. Jangan menganggap semua berkas .gz berisi arsip tar; data di dalamnya bisa berupa satu log atau jenis data lain.

FAQ

Apakah gunzip backup.tar.gz langsung mengeluarkan semua berkas?

Tidak. Perintah itu melepas lapisan gzip sehingga biasanya tersisa backup.tar. Gunakan tar untuk melihat daftar serta mengekstrak anggota arsip.

Mengapa contoh kedua gagal setelah contoh pertama berhasil?

Contoh bawaan dapat menghapus report.log.gz dan meninggalkan report.log. Siapkan salinan .gz serta tujuan yang belum berbenturan sebelum mencoba pilihan -k, atau gunakan -c dengan nama keluaran berbeda.