Membuat file zip di linux

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

Format File ZIP

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

Sementara file .tar.gz dan tar.bz2 adalah umum di Linux, pengguna Windows mungkin akan mengirimi Anda 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.

zip, unzip, dan Utilitas Lainnya

Anda mungkin sudah tahu bahwa sistem operasi Linux dan Unix seperti macOS memiliki alat untuk memungkinkan Anda membuat file ZIP dan mengekstrak file dari mereka disebut zip dan unzip. Tapi ada keluarga dari 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 hadir di Ubuntu 19.04, 18.10, dan 18.04. Mereka juga hadir di Manjaro 18.04. Fedora 29 termasuk zip dan unzip, tetapi tidak ada utilitas lain dan itu juga kasus untuk CentOS.

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

sudo dnf install perl-IO-Compress

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

sudo yum install perl-IO-Compress

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

Perintah Membuat File ZIP Linux

Untuk membuat file ZIP di Linux, Anda harus memberi nama file arsip zip dan file mana yang akan disertakan. Anda tidak perlu menambahkan ekstensi “.zip” ke nama arsip, tetapi tidak ada salahnya jika Anda melakukannya.

Untuk membuat file yang disebut, source_code.zip berisi semua nama file sumber C dan file header di direktori saat ini, Anda akan menggunakan perintah ini:

zip source_code *.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 output dari zip saat file ZIP dibuat, gunakan opsi -q (quiet).

zip -q source_code *.c *.h

Memasukkan Direktori dalam File ZIP

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

zip -r -q source_code archive/ *.c *.h

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

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

zip -r -q source_code work/

Mengatur Tingkat Kompresi ZIP di Linux

Anda dapat mengatur berapa banyak kompresi yang diterapkan pada file saat ditambahkan ke arsip ZIP. Rentangnya dari 0 hingga 9, dengan 0 tidak ada kompresi sama sekali. Semakin tinggi kompresi, semakin lama waktu yang dibutuhkan untuk membuat file ZIP. Untuk file ZIP berukuran sedang, perbedaan waktu bukanlah sesuatu yang signifikan. Untuk file ZIP berukuran sedang, kompresi standar (level 6) mungkin cukup bagus.

Agar zip dapat menggunakan tingkat kompresi tertentu, berikan angka sebagai opsi pada baris perintah, dengan “-“, seperti ini:

zip -0 -r -q source_code work/

Level kompresi default adalah 6. Tidak perlu menyertakan angka -6, tetapi tidak ada salahnya jika Anda melakukannya.

zip -r -q source_code work/

Level kompresi maksimum adalah level 9.

zip -9 -r -q source_code work/

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

Itu mungkin tidak tampak banyak, tetapi untuk arsip yang berisi ratusan atau bahkan ribuan file, sedikit kompresi ekstra per file akan menambah penghematan ruang yang berharga.

Menambahkan Kata Sandi File ZIP di Linux

Menambahkan password file ZIP di Linux itu mudah. Gunakan opsi -e (encrypt) dan Anda akan diminta memasukkan kata sandi dan memasukkannya kembali untuk verifikasi.

zip -e -r -q source_code work/

Cara Unzip File di Linux

Untuk mengekstrak file di Linux gunakan perintah unzip dan berikan nama file ZIP. Perhatikan bahwa Anda tidak perlu menyertakan “.zip” ekstensi.

unzip source_code.zip

Ketika file diekstraksi mereka terdaftar ke jendela terminal.

File ZIP tidak membawa detail kepemilikan file. Semua file yang diekstraksi memiliki pemilik yang ditetapkan untuk pengguna yang mengekstraksinya.

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

unzip -q source_code.zip

Ekstrak File ZIP ke Direktori Target

Agar file diekstraksi dalam direktori tertentu, gunakan opsi -d (direktori), dan berikan path ke direktori tempat Anda ingin arsip diekstraksi.

unzip -q source_code.zip -d ./development

Ekstrak File ZIP yang Dilindungi Kata Sandi

Jika file ZIP dibuat dengan kata sandi, saat Anda unzip akan ditanyakan kata sandi. Jika Anda tidak memberikan kata sandi yang benar,  unzip tidak akan mengekstrak file.

unzip -q source_code.zip

Jika Anda tidak peduli jika kata sandi Anda dilihat oleh orang lain dan juga tidak disimpan dalam riwayat perintah Anda, Anda dapat memberikan kata sandi pada baris perintah dengan opsi -P (password). (Anda harus menggunakan huruf besar “P”)

unzip -P fifty.treacle.cutlass -q source_code.zip

Jika Anda tidak ingin mengekstrak file atau grup file tertentu, gunakan opsi -x(exclude). Dalam contoh ini, kami ingin mengekstrak semua file terpisah dari yang berakhiran ekstensi “.h”.

unzip -q source_code.zip -x *.h

Menimpa File di Linux

Misalkan Anda telah mengekstrak arsip tetapi Anda ingin menghapus beberapa file yang diekstraksi karena kesalahan.

Perbaikan cepat untuk itu adalah mengekstrak file sekali lagi. Tetapi jika Anda mencoba untuk mengekstrak file ZIP di direktori yang sama seperti sebelumnya, unzip akan meminta Anda untuk keputusan tentang menimpa file. Ini akan mengharapkan salah satu dari tanggapan berikut.

Terlepas dari r (rename), respons ini peka terhadap huruf besar-kecil.

  • y: Ya, timpa file ini
  • n: Tidak, jangan timpa file ini
  • A: Semua, timpa semua file
  • N: Tidak ada, timpa tidak ada file
  • r: Ganti nama, ekstrak file ini tetapi berikan nama baru. Anda akan dimintai nama baru.

Untuk memaksa unzip menimpa file yang ada, gunakan opsi –o (overwrite).

unzip -o -q source_code.zip

Cara paling efisien untuk mengganti file yang hilang adalah dengan unzip file apa saja dalam arsip yang tidak ada di direktori target. Untuk melakukan ini, gunakan opsi –n (never overwrite).

unzip -n source_code.zip

Mencari di Dalam File ZIP Linux

Seringkali berguna dan instruktif untuk melihat daftar file di dalam file ZIP sebelum Anda mengekstraknya. Anda dapat melakukan ini dengan opsi –l (list archive). Itu disalurkan melalui less untuk membuat output dikelola.

unzip -l source_code.zip | less

Output menunjukkan direktori dan file dalam file ZIP, panjangnya dan waktu dan tanggal mereka ditambahkan ke arsip. Tekan “q” untuk berhenti less.

Ada cara lain untuk melihat file ZIP yang memberikan berbagai jenis informasi, 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 zipcloak. Berikan nama file ZIP pada baris perintah. Anda akan dimintai kata sandi. Anda perlu memverifikasi kata sandi dengan memasukkannya kedua kalinya.

zipcloak source_code.zip

Lihat Rincian File Dengan Perintah zipdetails

Zipdetails akan menunjukkan banyak informasi mengenai file ZIP. Satu-satunya cara yang masuk akal untuk menangani jumlah output yang dapat diberikan oleh perintah ini adalah menggunakan less.

zipdetails source_code.zip | less

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

Cari Data File Zip Dengan Perintah zipgrep

Zipgrep memungkinkan Anda untuk mencari di dalam file dalam file ZIP. Dalam contoh berikut, kami ingin tahu file mana di dalam file ZIP yang memiliki teks “keyval.h” di dalamnya.

zipgrep keyval.h source_code.zip

Kita dapat melihat bahwa file slang.c dan 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

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

zipinfo source_code.zip | less

Dari kiri ke kanan output 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 huruf kapital, file dienkripsi. Karakter kedua mungkin salah satu dari empat karakter. Karakter ini mewakili tipe meta-data apa yang disertakan untuk file ini: tidak ada, header lokal yang diperluas, “bidang tambahan”, atau keduanya.

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

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *