Perintah zip Linux: buat arsip ZIP dan periksa isinya
Perintah zip mengemas beberapa berkas menjadi satu arsip ZIP dan dapat mengompresi isinya. Gunakan -r untuk menyertakan isi direktori beserta subdirektorinya, lalu periksa daftar anggota dan integritas arsip sebelum dibagikan.
Nama arsip ditempatkan sebelum nama berkas atau direktori masukan. Jika arsip sudah ada, zip dapat menambah atau mengganti anggota, bukan selalu membuat arsip baru dari nol. Pilih nama keluaran baru untuk percobaan agar isi lama tidak tercampur tanpa disadari.
Sintaks dan persiapan
zip [opsi] arsip.zip berkas-atau-direktori ...
opsi, arsip.zip, dan berkas-atau-direktori adalah penanda. Periksa zip -v dan man zip untuk versi serta kemampuan yang terpasang. Contoh ini mengikuti perilaku Info-ZIP; pastikan zip dan unzip tersedia, masukan dapat dibaca, dan lokasi keluaran dapat ditulis.
Siapkan report.txt, notes.txt, serta direktori project/ yang berisi beberapa berkas latihan. Jalankan dari direktori induknya. Pastikan documents.zip, project.zip, dan bundle.zip belum ada, serta sediakan ruang untuk arsip dan berkas sementara yang mungkin diperlukan saat pembaruan.
Mengemas dua berkas
zip documents.zip report.txt notes.txt
documents.zip dibuat dengan anggota report.txt dan notes.txt. Berkas sumber tetap tersedia pada perintah ini. zip biasanya menampilkan pesan penambahan anggota dan metode atau hasil kompresinya; rincian persentase bergantung pada data.
Periksa status keluar serta pesan peringatan. Masukan yang hilang atau tidak dapat dibaca dapat membuat arsip tidak selengkap yang diharapkan. Jangan menyimpulkan semua berkas sudah tercakup hanya karena sebuah ZIP berhasil terlihat di direktori.
Menyertakan seluruh isi direktori
zip -r project.zip project/
-r menelusuri project/ secara rekursif, yaitu masuk ke subdirektori untuk menyertakan isinya. Nama anggota biasanya mempertahankan awalan project/, misalnya project/src/main.txt. Tanpa -r, memberikan nama direktori saja tidak menyertakan seluruh isi secara rekursif.
Jalankan dari induk project/ agar project.zip berada di luar pohon masukan. Pada Info-ZIP di Unix, penelusuran direktori ini juga menyertakan nama yang diawali titik. Karena itu, periksa apakah berkas tersembunyi, konfigurasi, atau data lain memang boleh dibagikan sebelum membuat arsip.
Memeriksa daftar anggota arsip
unzip -l project.zip
unzip -l menampilkan nama anggota, ukuran data yang belum terkompresi, serta informasi waktu sesuai isi arsip. Periksa bahwa berkas yang dibutuhkan ada, awalan direktori sesuai, dan tidak ada anggota yang tidak seharusnya ikut. Rincian pemakaian alat tersedia dalam panduan perintah unzip dalam bahasa Inggris.
Daftar anggota bukan pemeriksaan integritas isi. Gunakan unzip -t project.zip untuk menguji data terkompresi tanpa mengekstraknya menjadi berkas kerja. Hasil uji yang baik tidak membuktikan asal pengirim atau bahwa arsip memuat versi dokumen yang Anda maksud.
Contoh lengkap dengan keluaran sederhana
Gunakan direktori percobaan kosong. Pastikan note.txt belum memuat data yang perlu dipertahankan dan bundle.zip belum ada, karena printf berikut mengganti isi note.txt:
printf 'hello\n' > note.txt
zip -q bundle.zip note.txt
unzip -Z -1 bundle.zip
printf membuat note.txt berisi hello dan satu baris baru. zip -q mengurangi pesan informasi penambahan, sedangkan unzip -Z -1 menampilkan satu nama anggota per baris. Untuk arsip baru pada contoh ini, hasil yang diharapkan adalah:
note.txt
Jika bundle.zip sudah ada, anggota lama yang tidak disebutkan dapat tetap berada di dalamnya. Itulah sebabnya contoh mengharuskan nama arsip baru. -q mengurangi keluaran, bukan menjamin semua operasi berhasil; jalankan setiap baris dan periksa pesan serta statusnya sebelum melanjutkan.
Untuk menguji contoh, jalankan unzip -t bundle.zip. Untuk memeriksa pemulihan, ekstrak ke direktori restore/ yang baru dan kosong melalui unzip bundle.zip -d restore/, lalu bandingkan cmp note.txt restore/note.txt. cmp biasanya diam dengan status 0 jika isi identik; status 1 menunjukkan perbedaan. Jangan mengekstrak arsip tak tepercaya langsung ke direktori kerja yang berisi data penting.
Opsi utama
| Opsi | Fungsi dan batasnya |
|---|---|
-r |
Menyertakan isi direktori dan subdirektori secara rekursif. |
-0 |
Menyimpan anggota tanpa kompresi. |
-1 ... -9 |
Memilih tingkat kompresi; tingkat tinggi tidak menjamin penghematan yang berarti untuk data yang sudah terkompresi. |
-u |
Memperbarui anggota yang waktu modifikasi sumbernya lebih baru dan menambahkan berkas baru yang dipilih. |
-x pola |
Mengecualikan jalur anggota yang cocok dengan pola; lindungi wildcard dari perluasan shell. |
Contohnya, zip -r project-clean.zip project/ -x '*.tmp' membuat arsip baru sambil mengecualikan anggota yang cocok dengan *.tmp. Kutip pola agar zip yang mencocokkannya terhadap jalur arsip. Selalu periksa daftar hasil; pola yang keliru dapat membuat arsip kurang lengkap atau memasukkan data yang tidak diinginkan.
Memahami pembaruan arsip yang sudah ada
Operasi bawaan zip menambah nama baru atau mengganti anggota dengan nama yang sama. Anggota lama yang tidak disebutkan tidak otomatis dihapus. Menjalankan ulang perintah dengan daftar masukan lebih pendek bukan cara memastikan ZIP hanya berisi daftar yang baru.
-u memakai waktu modifikasi untuk menentukan anggota yang perlu diperbarui dan juga dapat menambahkan nama baru. Ini bukan pembandingan isi byte demi byte. Berkas yang sudah dihapus dari direktori sumber juga tidak otomatis terhapus dari arsip oleh -u. Untuk hasil yang harus benar-benar baru, gunakan nama arsip baru dan periksa daftar anggotanya.
Jika memang perlu mengubah arsip yang sudah ada, simpan salinan cadangannya terlebih dahulu. Setelah pembaruan, periksa daftar dan uji integritas lagi. Jangan menganggap satu keberhasilan arsip sebelumnya berlaku untuk versi yang baru saja diubah.
Kompatibilitas, metadata, dan kata sandi
ZIP umum dipakai untuk pertukaran berkas antarsistem, tetapi dukungan nama non-ASCII, metode kompresi, serta arsip besar bergantung pada alat pembuat dan pembuka. Periksa nama anggota dan coba pemulihan pada lingkungan penerima bila hal itu penting.
Izin, kepemilikan, dan metadata khusus sistem tidak selalu dipertahankan dengan cara yang sama lintas platform. Jangan menganggap ZIP pengganti semua kebutuhan pencadangan sistem. Berkas yang sudah terkompresi juga dapat disimpan tanpa kompresi tambahan karena hasilnya lebih sesuai.
Info-ZIP Zip 3.0 menyediakan enkripsi ZIP tradisional yang dinyatakan lemah dalam manualnya. Jangan menganggap opsi kata sandi biasa cukup untuk data sensitif. Hindari memasukkan kata sandi sebagai argumen -P karena dapat terlihat dalam baris perintah; pilih metode enkripsi yang memenuhi kebutuhan kerahasiaan Anda.
FAQ
Apakah zip project.zip project/ memasukkan seluruh isi folder?
Tidak secara rekursif. Gunakan zip -r project.zip project/ lalu periksa daftar anggota dengan unzip -l.
Mengapa ZIP masih memuat berkas yang tidak disebutkan pada perintah baru?
Arsip yang sudah ada diperbarui, bukan selalu dibangun ulang dari nol. Anggota lama yang tidak dipilih dapat tetap tersimpan. Gunakan nama arsip baru jika ingin hasil terpisah dengan daftar masukan yang baru.
Dokumentasi
Rincian operasi tambah, pembaruan, pola pengecualian, dan keterbatasan enkripsi dapat diperiksa pada manual Info-ZIP zip yang diterbitkan Ubuntu.




