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 zip
dan 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 zip
dan 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 zip
nama 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.zip
berisi 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 zip
saat 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 work
direktori dan semua sub-direktori. Perhatikan bahwa perintah ini dikeluarkan dari direktori induk dari work
folder.
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 zip
menggunakan 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 -6
opsi, 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 -q
opsi (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 unzip
akan meminta kata sandi. Jika Anda tidak memberikan password yang benar, unzip
tidak 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 unzip
akan diminta untuk mengambil keputusan terkait penimpaan file. Ini akan mengharapkan salah satu tanggapan berikut.
Selain r
respons (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 unzip
menimpa file yang ada, gunakan opsi -o
(timpa).
unzip -o -q source_code.zip
Cara paling efisien untuk mengganti file yang hilang adalah dengan unzip
mengekstrak 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 less
untuk 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 zipcloak
perintah. 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 zipdetails
perintah 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 zipgrep
perintah 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.c
dan getval.c
berisi 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 zipinfo
perintah 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 zipsplit
perintah 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.zip
file. 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.