Cara Zip atau Unzip File Dari Terminal Linux

File ZIP adalah arsip universal yang biasa digunakan di Windows, macOS, dan bahkan sistem Linux. Anda dapat membuat arsip zip atau mengekstrak file dari arsip dengan beberapa perintah terminal Linux yang umum.

Format File Arsip Terkompresi ZIP

Berkat dominasi format ZIP di ranah Windows, file ZIP mungkin adalah bentuk arsip terkompresi yang paling umum di dunia.

Meskipun file .tar.gz dan tar.bz2 biasa ditemukan di Linux, pengguna Windows mungkin akan mengirimkan arsip dalam format ZIP. Dan, jika Anda ingin mengarsipkan beberapa file dan mengirimkannya ke pengguna Windows, format ZIP akan menjadi solusi termudah dan paling kompatibel untuk semua orang.

TERKAIT: Cara Mengekstrak File Dari File .tar.gz atau .tar.bz2 di Linux

zip, unzip, dan Utilitas Lainnya

Anda mungkin sudah tahu bahwa Linux dan sistem operasi mirip Unix seperti macOS memiliki alat untuk memungkinkan Anda membuat file ZIP dan mengekstrak file darinya, disebut zipdan unzip. Tapi ada seluruh keluarga utilitas terkait seperti zipcloak, zipdetails, zipsplit, dan zipinfo.

Kami memeriksa beberapa distribusi Linux untuk melihat apakah mereka menyertakan utilitas ini dalam instalasi standar. Semua utilitas ada di Ubuntu 19.04, 18.10, dan 18.04. Mereka juga hadir di Manjaro 18.04. Fedora 29 termasuk zipdan unzip, tetapi tidak ada utilitas lain dan itu juga berlaku untuk CentOS.

Untuk menginstal elemen yang hilang di Fedora 29, gunakan perintah berikut:

sudo dnf menginstal perl-IO-Compress

Untuk menginstal elemen yang hilang di CentOS 7, gunakan perintah berikut:

sudo yum menginstal perl-IO-Compress

Jika ada utilitas zip yang hilang dari distribusi Linux yang tidak disebutkan di atas, gunakan alat manajemen paket distribusi Linux itu untuk menginstal paket yang diperlukan.

Cara Membuat File ZIP dengan Perintah zip

Untuk membuat file ZIP, Anda perlu memberi tahu zipnama file arsip dan file mana yang akan disertakan di dalamnya. Anda tidak perlu menambahkan ekstensi ".zip" ke nama arsip, tetapi tidak ada salahnya jika Anda melakukannya.

Untuk membuat file bernama source_code.zipberisi semua file kode sumber C dan file header di direktori saat ini, Anda akan menggunakan perintah ini:

kode_sumber zip * .c * .h

Setiap file terdaftar saat ditambahkan. Nama file dan jumlah kompresi yang dicapai pada file itu ditampilkan.

Jika Anda melihat arsip ZIP baru, Anda dapat melihat bahwa ekstensi file ".zip" telah ditambahkan secara otomatis oleh zip.

ls -l source_code.zip

Jika Anda tidak ingin melihat keluaran dari zipsaat file ZIP dibuat, gunakan opsi -q(diam).

zip -q source_code * .c * .h

Termasuk Direktori di File ZIP

Untuk memasukkan sub-direktori dalam file ZIP, gunakan opsi -r(rekursif) dan sertakan nama sub-direktori pada baris perintah. Untuk membuat file ZIP seperti sebelumnya dan juga menyertakan sub-direktori arsip, gunakan perintah ini.

zip -r -q arsip kode_sumber / * .c * .h

Untuk memperhatikan orang yang akan mengekstrak file dari file ZIP yang Anda buat, sering kali sopan untuk membuat file ZIP dengan file di dalamnya terdapat dalam direktori. Ketika orang yang menerima file ZIP mengekstraknya, semua file ditempatkan dengan rapi di dalam direktori di komputer mereka.

Pada perintah berikut, kami akan mengarsipkan workdirektori dan semua sub-direktori. Perhatikan bahwa perintah ini dikeluarkan dari direktori induk dari workfolder.

zip -r -q kode_sumber kerja /

Mengatur Tingkat Kompresi

Anda dapat mengatur berapa banyak kompresi yang diterapkan ke file saat mereka ditambahkan ke arsip ZIP. Kisarannya adalah dari 0 hingga 9, dengan 0 tidak ada kompresi sama sekali. Semakin tinggi kompresinya, semakin lama waktu yang dibutuhkan untuk membuat file ZIP. Untuk file ZIP berukuran sedang, perbedaan waktu bukanlah penalti yang signifikan. Tapi kemudian, untuk file ZIP berukuran sedang, kompresi default (level 6) mungkin sudah cukup baik.

Untuk zipmenggunakan tingkat kompresi tertentu, teruskan nomor tersebut sebagai opsi pada baris perintah, dengan “-“, seperti ini:

zip -0 -r -q kode_sumber kerja /

Tingkat kompresi default adalah 6. Tidak perlu memberikan -6opsi, tetapi tidak ada salahnya jika Anda melakukannya.

zip -r -q kode_sumber kerja /

Level kompresi maksimum adalah level 9.

zip -9 -r -q kode_sumber kerja /

Dengan pemilihan file dan direktori yang diarsipkan di sini, perbedaan antara tanpa kompresi (level 0) dan kompresi default (level 6) adalah 400K. Perbedaan antara kompresi default dan level kompresi tertinggi (level 9) hanya 4K.

Tampaknya tidak terlalu banyak, tetapi untuk arsip yang berisi ratusan atau bahkan ribuan file, sedikit kompresi ekstra per file akan menambah penghematan ruang yang bermanfaat.

Menambahkan Kata Sandi ke File ZIP

Menambahkan kata sandi ke file ZIP itu mudah. Gunakan opsi -e(enkripsi) dan Anda akan diminta untuk memasukkan kata sandi Anda dan memasukkannya kembali untuk verifikasi.

zip -e -r -q kode_sumber kerja /

Cara Unzip File ZIP Dengan Perintah unzip

Untuk mengekstrak file dari file ZIP, gunakan perintah unzip, dan berikan nama file ZIP tersebut. Perhatikan bahwa Anda lakukan perlu untuk memberikan “.zip” ekstensi.

buka zip source_code.zip

Saat file diekstraksi, mereka terdaftar ke jendela terminal.

File ZIP tidak membawa detail kepemilikan file. Semua file yang diekstrak memiliki pemilik yang ditetapkan ke pengguna yang mengekstraknya.

Sama seperti zip, unzip memiliki -qopsi (quiet), sehingga Anda tidak perlu melihat daftar file saat file diekstraksi.

unzip -q source_code.zip

Mengekstrak File ke Direktori Target

Untuk mengekstrak file dalam direktori tertentu, gunakan opsi -d(direktori), dan berikan jalur ke direktori tempat Anda ingin arsip diekstrak.

unzip -q source_code.zip -d ./development

Ekstrak File ZIP yang Dilindungi Kata Sandi

Jika file ZIP telah dibuat dengan kata sandi, Anda unzipakan meminta kata sandi. Jika Anda tidak memberikan password yang benar,  unziptidak akan mengekstrak file.

unzip -q source_code.zip

Jika Anda tidak peduli tentang kata sandi Anda dilihat oleh orang lain — atau tentang itu disimpan dalam riwayat perintah Anda — Anda dapat memberikan kata sandi pada baris perintah dengan opsi -P(kata sandi). (Anda harus menggunakan huruf besar "P.")

unzip -P lima puluh.treacle.cutlass -q source_code.zip

Mengecualikan File

Jika Anda tidak ingin mengekstrak file atau grup file tertentu, gunakan opsi -x(kecualikan). Dalam contoh ini, kami ingin mengekstrak semua file selain yang diakhiri dengan ekstensi ".h".

unzip -q source_code.zip -x * .h

Menimpa File

Misalkan Anda telah mengekstrak arsip tetapi Anda telah menghapus beberapa file yang diekstrak secara tidak sengaja.

Perbaikan cepat untuk itu adalah mengekstrak file sekali lagi. Tetapi jika Anda mencoba mengekstrak file ZIP di direktori yang sama seperti sebelumnya, Anda unzipakan diminta untuk mengambil keputusan terkait penimpaan file. Ini akan mengharapkan salah satu tanggapan berikut.

Selain rrespons (ganti nama), respons ini peka huruf besar / kecil.

  • y: Ya, timpa file ini
  • n: Tidak, jangan timpa file ini
  • J: Semua, timpa semua file
  • N: Tidak ada, tidak ada file yang ditimpa
  • r: Ubah nama, ekstrak file ini tetapi beri nama baru. Anda akan diminta memasukkan nama baru.

Untuk memaksa unzipmenimpa file yang ada, gunakan opsi -o(timpa).

unzip -o -q source_code.zip

Cara paling efisien untuk mengganti file yang hilang adalah dengan unzipmengekstrak file apa pun di arsip yang tidak ada di direktori target. Untuk melakukan ini, gunakan opsi -n(jangan pernah menimpa).

unzip -n source_code.zip

Mencari Di Dalam File ZIP

Seringkali berguna dan instruktif untuk melihat daftar file di dalam file ZIP sebelum Anda mengekstraknya. Anda dapat melakukan ini dengan opsi -l(arsip daftar). Itu disalurkan lessuntuk membuat output dapat dikelola.

unzip -l source_code.zip | kurang

Keluarannya menunjukkan direktori dan file di dalam file ZIP, panjangnya dan waktu serta tanggal ditambahkan ke arsip. Tekan "q" untuk keluar less.

Ada cara lain untuk mengintip ke dalam file ZIP yang memberikan jenis informasi berbeda, seperti yang akan kita lihat.

Tambahkan Kata Sandi Dengan Perintah zipcloak

Jika Anda telah membuat file ZIP tetapi lupa menambahkan kata sandi, apa yang dapat Anda lakukan? Anda dapat dengan cepat menambahkan kata sandi ke file ZIP menggunakan zipcloakperintah. Berikan nama file ZIP pada baris perintah. Anda akan dimintai kata sandi. Anda perlu memverifikasi kata sandi dengan memasukkannya untuk kedua kalinya.

zipcloak source_code.zip

Lihat Detail File Dengan Perintah zipdetails

The zipdetailsperintah akan menunjukkan banyak informasi mengenai file ZIP. Satu-satunya cara yang masuk akal untuk menangani jumlah keluaran yang dapat diberikan perintah ini adalah menyalurkannya less.

zipdetails source_code.zip | kurang

Perhatikan bahwa informasi tersebut akan menyertakan nama file meskipun file ZIP dilindungi kata sandi. Jenis informasi ini disimpan dalam file ZIP sebagai meta-data dan bukan bagian dari data yang dienkripsi.

Cari Di Dalam File Dengan Perintah zipgrep

The zipgrepperintah memungkinkan Anda untuk mencari di dalam file dalam file ZIP. Dalam contoh berikut, kami ingin mengetahui file mana dalam file ZIP yang memiliki teks "keyval.h" di dalamnya.

zipgrep keyval.h source_code.zip

Kita dapat melihat bahwa file tersebut slang.cdan getval.cberisi string "keyval.h". Kita juga dapat melihat bahwa ada dua salinan dari masing-masing file ini di direktori yang berbeda di file ZIP.

Lihat Informasi Dengan Perintah zipinfo

The zipinfoperintah memberi Anda cara lain untuk melihat ke dalam file ZIP. Seperti sebelumnya, kami menyalurkan output melalui less.

zipinfo source_code.zip | kurang

Dari kiri ke kanan, keluarannya menunjukkan:

  • Izin file
  • Versi alat yang digunakan untuk membuat file ZIP
  • Ukuran file asli
  • Deskriptor file (dijelaskan di bawah)
  • Metode kompresi (deflasi, dalam hal ini)
  • Data dan cap waktu
  • Nama file dan direktori apa pun

Deskriptor file terdiri dari dua karakter. Karakter pertama akan menjadi "t" atau "b" untuk menunjukkan teks atau file biner. Jika itu adalah huruf kapital, file tersebut dienkripsi. Karakter kedua mungkin salah satu dari empat karakter. Karakter ini mewakili jenis meta-data yang disertakan untuk file ini: tidak ada, header lokal yang diperluas, "bidang ekstra", atau keduanya.

  • -: Jika tidak ada, karakter akan menjadi tanda hubung
  • l: jika ada tajuk lokal yang diperluas tetapi tidak ada bidang tambahan
  • x: jika tidak ada tajuk lokal tambahan tetapi ada bidang tambahan
  • X: jika ada tajuk lokal yang diperluas dan ada bidang tambahan

Pisahkan File Dengan Perintah zipsplit

Jika Anda perlu mengirim file ZIP ke orang lain tetapi ada batasan ukuran atau masalah dengan pengiriman file, Anda dapat menggunakan zipsplitperintah untuk membagi file ZIP asli menjadi satu set file ZIP yang lebih kecil.

Opsi -n(ukuran) memungkinkan Anda menyetel ukuran maksimum untuk setiap file ZIP baru. Dalam contoh ini, kami sedang memisahkan source_code.zipfile. Kami tidak ingin ada file ZIP baru yang lebih besar dari 100 KB (102400 byte).

zipsplit -n 102400 source_code.zip

Ukuran yang Anda pilih tidak boleh lebih kecil dari ukuran file mana pun di file ZIP.

Dengan menggunakan perintah ini, Anda dapat membuat file ZIP Anda sendiri, mengekstrak file ZIP yang Anda terima, dan melakukan berbagai operasi lainnya tanpa harus meninggalkan terminal Linux.