it-swarm-id.com

Bagaimana cara Zip / unzip pada baris perintah unix?

Bagaimana saya bisa membuat dan mengekstrak arsip Zip dari baris perintah?

570
joachim

Biasanya orang menggunakan tar untuk membuat arsip yang tidak terkompresi dan gzip atau bzip2 untuk mengompresi arsip itu. gunzip dan bunzip2 perintah dapat digunakan untuk membuka kompresi arsip, atau Anda bisa menggunakan flag pada perintah tar 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.

698
Justin Ethier

Ada benar-benar luas sejumlah cara berbeda untuk mengompresi dan mengompres di bawah turunan UNIX jadi saya akan menganggap Anda berarti "Zip" dalam arti umum daripada --- spesifik format file.

Anda dapat Zip file ke atas (dalam format terkompresi) dengan program GNU tar:

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

Tentu saja dengan asumsi bahwa Anda memiliki tar yang mampu 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 file format Zip, saya sarankan mengunduh 7Zip dan menggunakan itu - ia mengenali besar berbagai format file, termasuk yang Zip.

68
user14408

Jika Anda tidak menginstal paket Zip dan unzip dan Anda memiliki Java, Anda dapat menggunakan jar untuk unzip:

jar -xf file.Zip
33
mlocke

Nah, ketika datang untuk mendistribusikan file untuk berbagai sistem operasi, saya akan merekomendasikan 7-Zip .

Biasanya dalam paket p7Zip, Anda akan mendapatkan 7z dan 7za perintah, yang dengannya Anda dapat membuat arsip 7z Anda sendiri.

7za juga dapat mendekompresi standar ( pkzip ) arsip Zip (dan membuatnya juga dengan -tzip beralih).

Mengkompresi:

7za a archive.7z file1 file2 directory/

Dekompresi:

7za x archive.7z

Itu juga dapat membuat arsip self-extracting dengan -sfx beralih:

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 tarbal Anda, gunakan -J beralih dengan tar:

tar cJf archive.tar.xz file1 file2 dir

xz adalah alat UNIX, yang menggunakan LZMA2 untuk kompresi, tetapi bekerja dengan cara gz, bz2, dll berfungsi. 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 file tar, saya sarankan menggunakan xz, karena dirancang untuk itu):

tar cf - file1 file2 dir | 7za z -si archive.tar.7z
30
polemon
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.

23
Starfish

BSD Tar juga dapat melakukan ini

bsdtar -a -c -f sunday.Zip sunday.jpg

Atau:

bsdtar -x -f sunday.Zip
4
Steven Penny

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 sekaligus mengompres arsip. Perilaku ini berbeda dari Zip , yang mengompres setiap file sebelum memasukkannya ke dalam arsip.

3
mouviciel

Ini hanya mencakup ekstraksi.

Untuk itu, saya sudah mulai menggunakan 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 ... Penggunaannya selalu sama - dtrx archive.Zip. Itu mengajukan beberapa pertanyaan dan Anda selesai.

dtrx tersedia di sebagian besar repositori, sehingga Anda dapat apt | yum menginstalnya.

2
JackLeo

Saya sering menemukan diri saya mencoba untuk Zip file yang dimodifikasi di direktori pekerjaan 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 menggunakan Zip dengan opsi [email protected].

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 [email protected]
1
R Sahu