Bagaimana saya bisa membuat dan mengekstrak arsip zip dari baris perintah?
Bagaimana saya bisa membuat dan mengekstrak arsip zip dari baris perintah?
Jawaban:
Biasanya orang menggunakan tar
untuk membuat arsip yang tidak terkompresi dan salah satu gzip
atau bzip2
untuk mengompresi arsip itu. Perintah yang sesuai gunzip
dan bunzip2
dapat digunakan untuk mengompres arsip tersebut, atau Anda bisa menggunakan flag pada tar
perintah untuk melakukan uncompression.
Jika Anda merujuk secara khusus ke format file Zip , Anda cukup menggunakan perintah zip
dan unzip
.
Untuk kompres:
zip squash.zip file1 file2 file3
atau untuk zip direktori
zip -r squash.zip dir1
Untuk membuka kompresi:
unzip squash.zip
ini membuka ritsletingnya di direktori kerja Anda saat ini.
zip -r9 archive.zip files...
sintaks (-r = rekursif -9 = kompresi maks).
zip
dapat membuat berbagai rasa arsip .ZIP, serta menggunakan banyak kompresor yang berbeda. Di sisi lain, ada sejumlah alat kompresi lain yang bernama serupa: 7-Zip, gzip, bzip2, rzip, dll. Yang tidak dapat dipertukarkan.
cd dir1; zip -r ../squash.zip *
unzip -d myfolder squash.zip
untuk mengekstrak ke direktori baru yang terpisah ( myfolder
) alih-alih menempatkan semua file langsung ke direktori saat ini, yang dapat mengganggu jika file zip berisi banyak file dan direktori di tingkat atas. Ini meniru cara sebagian besar alat unzip UI bekerja.
Ada banyak sekali cara berbeda untuk mengompresi dan mengompres di bawah turunan UNIX jadi saya akan menganggap Anda berarti "zip" dalam arti umum daripada format file tertentu .
Anda dapat menyalin file (dalam format terkompresi) dengan tar
program GNU :
tar -zcvf myfile.tgz .
yang akan melakukan direktori saat ini. Ganti .
dengan nama file lain jika Anda menginginkan sesuatu yang lain.
Untuk membuka zip file itu, gunakan:
tar -zxvf myfile.tgz
Itu tentu saja dengan asumsi bahwa Anda memiliki tar
kemampuan melakukan kompresi serta menggabungkan file menjadi satu.
Jika tidak, Anda bisa menggunakan tar cvf
diikuti oleh gzip
(lagi, jika tersedia) untuk kompresi dan gunzip
diikuti oleh tar xvf
.
Untuk penanganan spesifik format file ZIP, saya akan merekomendasikan download 7zip
dan menggunakan itu - itu mengakui besar berbagai format file, termasuk satu ZIP.
tar jcvf file.tar.bz2...
untuk kompres dalam format bzip2 atau tar Jcvf file.tar.xz ...
untuk kompresi xz.
Nah, ketika datang untuk mendistribusikan file untuk berbagai sistem operasi, saya akan merekomendasikan 7-zip .
Biasanya dalam paket p7zip
, Anda akan mendapatkan perintah 7z
dan 7za
, dengan mana Anda dapat membuat arsip 7z Anda sendiri.
7za
juga dapat mendekompresi arsip zip standar ( pkzip ) (dan membuatnya juga dengan -tzip
sakelar).
Mengkompresi:
7za a archive.7z file1 file2 directory/
Dekompresi:
7za x archive.7z
Itu juga dapat membuat arsip yang mengekstraksi sendiri dengan -sfx
sakelar:
7za a -sfx archive.exe files1 file2 dir
Saya merekomendasikan metode ini jika pengguna Windows tidak dapat membuka arsip 7z (jika Anda ingin memberi saran alat untuk itu: PeaZip ).
Jika Anda ingin menggunakan algoritma kompresi yang sama dengan tarball Anda, gunakan -J
sakelar dengan tar
:
tar cJf archive.tar.xz file1 file2 dir
xz
adalah alat UNIX, yang menggunakan LZMA2 untuk kompresi, tetapi bekerja jalan gz
, bz2
, dll bekerja. Bahkan berfungsi sebagai filter.
7z tidak membuat arsip dengan informasi sistem file lengkap di UNIX, jadi Anda harus menggunakan tar
sebelum menggunakan 7z (tapi karena 7z menyimpan informasi lain tentang tar
file, saya sarankan menggunakan xz
, karena dirancang untuk itu):
tar cf - file1 file2 dir | 7za z -si archive.tar.7z
atool
, ini adalah alat kecil yang bagus yang membuat menggunakan banyak kompresor berbeda menjadi lebih nyaman. Mengikat bahwa untuk a
dan menciptakan sebuah arsip menjadi a arc.7z folder/
atau penggalian sederhanaa arc.7z
unzip <filename>
dan
zip -r archive.zip <filename> [filename]
Anda harus memastikan bahwa perintah-perintah ini diinstal melalui manajer paket Anda. Ini tidak lebih sulit daripada menggunakan apa pun di baris perintah. Ini tentu saja lebih sederhana daripada membuat arsip dengan tar.
BSD Tar juga dapat melakukan ini
bsdtar acf bravo.zip alfa.jpg
Atau:
bsdtar xf bravo.zip
tar
memiliki manfaat mendukung beberapa format kompresi tambahan dibandingkan dengan GNU tar
dan lainnya tar
. Manfaat terbesar adalah, mungkin, bahwa ia melakukannya saat menggunakan tar
sintaks seperti . Anda pasti bisa menggunakan 7z
, unrar
, unzip
, dll dari commandline, tetapi mereka menggunakan berbeda sintaks.
Jawaban paling standar adalah pax
, yang direkomendasikan lebih dari cpio
dan tar
.
Tidak seperti cpio
dan POSIX tar
, tetapi seperti GNU tar
, pax
dapat mengarsipkan file dan mengompresi arsip. Perilaku ini berbeda dari zip
, yang memampatkan setiap file sebelum memasukkannya ke dalam arsip.
pax
mendukung arsip zip?
pax
arsip!
Ini hanya mencakup ekstraksi.
Untuk itu, saya sudah mulai menggunakannya dtrx
.
Intinya adalah untuk menghapus kompleksitas. Jadi, Anda hanya membagikan arsip apa pun ke sana dan mencari tahu apa yang harus dilakukan dengannya. Zip, tar, gz ... Penggunaan selalu sama - dtrx archive.zip
. Itu mengajukan beberapa pertanyaan dan Anda selesai.
dtrx
tersedia di sebagian besar repositori, jadi Anda dapat apt
| yum
pasang itu.
Saya sering menemukan diri saya mencoba zip file yang dimodifikasi di direktori kerja saya - baik untuk menyalin semua file yang dimodifikasi ke direktori kerja kotak pasir lain atau untuk melestarikannya untuk sementara waktu karena saya ingin membatalkan beberapa perubahan.
Dalam hal ini, saya menyalin daftar file yang diubah ke file sementara dan digunakan zip
dengan opsi -@
.
Katakanlah saya memodifikasi file Foo.h, Bar.cc, dan TestBar.cc.
Katakanlah saya membuat file bernama modified-files.txt yang isinya:
Foo.h
Bar.cc
TestBar.cc
Saya menjalankan perintah berikut untuk zip file-file itu:
cat modified-files.txt | zip modified-files.zip -@