Bagaimana cara unzip file zip dari Terminal?

1413

Baru saja mengunduh file .zip dari internet. Saya ingin menggunakan terminal untuk membuka zip file. Apa cara yang benar untuk melakukan ini?

ubuntu-kutu buku
sumber
3
Ekstrak semua file dari folder saat ini, Anda dapat menggunakan: unzip \ *. Zip
burtsevyg
2
@ Burtsevyg backslash tidak diperlukan di sana. Itu akan membuat cangkang memperlakukan \*sebagai simbol bintang literal. Cukup gunakan unzip *.zipuntuk membuat shell meluas *ke semua file yang berakhiran.zip
Sergiy Kolodyazhnyy
Menggunakan *sendiri tidak berhasil untuk saya. Itu menyebabkan filename not matchedkesalahan. \*melakukan pekerjaan.
arman_aegit
Saya sarankan Anda menggunakan & belajar "unar" alih-alih yang khusus zip, kecuali Anda memerlukan fitur tertentu. "Format file yang didukung termasuk Zip, Tar-GZip, Tar-BZip2, RAR, 7-zip, LhA, StuffIt dan banyak format lama dan tidak jelas lainnya."
masterxilo
Ubuntu memiliki beberapa alat kompres / dekompresi yang sudah diinstal. Jalankan apropos zipdari konsol untuk daftar lengkap.
Stephen W. Wright

Jawaban:

1927

Jika unzipperintah belum diinstal di sistem Anda, jalankan:

sudo apt-get install unzip

Setelah menginstal utilitas unzip, jika Anda ingin mengekstrak ke folder tujuan tertentu, Anda dapat menggunakan:

unzip file.zip -d destination_folder

Jika direktori sumber dan tujuan sama, Anda dapat melakukannya:

unzip file.zip
Kelley
sumber
83
Jika Anda sudah berada di direktori yang Anda inginkan file tidak di-zip, abaikan argumen ke-2 dan ke-3, yaituunzip /path/to/file.zip
Severo Raz
2
Saya baru saja menggunakan perintah ini. Ini sebuah contoh. Langkah 1 (Saya mengubah ke direktori tempat file zip disimpan): cd /home/paf/Copy/Programming/Javascript/Json Step2 (Saya mengekstrak file zip di direktori yang baru saja saya sebutkan):unzip file.zip -d /home/paf/Copy/Programming/Javascript/Json
pablofiumara
2
unzipmungkin program default. Dengan kata lain, Anda mungkin tidak perlu menginstalnya.
noobninja
2
@Aevi Periksa halaman manual[-d exdir] An optional directory to which to extract files.
WAKR
4
Pastikan Anda mengekstrak ke direktori, tidak seperti arsip tar, Anda mungkin menemukan banyak orang memasukkan lusinan file dalam direktori root dari file zip mereka, ini dapat membuat kekacauan nyata !!!
Steve
230

Anda cukup menggunakan unzip.

Pasang itu:

apt-get install unzip

Dan gunakan itu:

cd /path/to/file
unzip file.zip
Harimau kumbang
sumber
117

Alat yang lebih berguna adalah 7z, yang membuka ritsleting dan membuka ragam format kompresi, khususnya lzma, protokol yang menawarkan tingkat kompresi tertinggi.

Perintah ini menginstal 7z:

sudo apt-get install p7zip-full

Perintah ini mencantumkan isi zip:

7z l zipfile.zip

Perintah ini mengekstraksi konten zip:

7z x zipfile.zip
Chris
sumber
5
7z etidak menyimpan struktur direktori - 7z xtidak ...
assylias
2
13.10 mengatakan 7z tidak ada. Saya pikir itu harus sudo apt-get install 7zip
nitishch
6
Saya pikir perintah instal seharusnya sudo apt-get install p7zipatau sudo apt-get install p7zip-fullAnda memerlukan versi lengkap untuk mendapatkan 7zperintah. Penuh juga satu-satunya yang menangani zip dan jenis format lainnya dari keduanya.
Otomatis
1
dapatkah Anda menjelaskan "Alat yang lebih berguna"? Apakah Anda membandingkan dengan unzip? Bisakah Anda memberikan contoh fitur yang membuat 7z lebih berguna, dan mungkin dalam konteks mana 7z lebih disukai?
David LeBauer
1
Untuk beberapa unzip lebih bermanfaat: mudah digunakan dan namanya harus diingat.
Shy Robbiani
47

Anda dapat gunakan:

unzip file.zip -d somedir

untuk mengekstrak yourpath/somedir

Jika Anda ingin mengekstrak ke jalur absolut, gunakan

sudo unzip file.zip -d /somedir
cristobalhdez
sumber
39

Menggunakan alat skrip: Perl dan Python

Banyak jawaban di sini menyebutkan alat yang memerlukan instalasi, tetapi tidak ada yang menyebutkan bahwa dua bahasa scripting Ubuntu, Perl dan Python, sudah datang dengan semua modul yang diperlukan yang memungkinkan Anda untuk meng-unzip arsip zip, yang berarti Anda tidak perlu menginstal apa pun lain. Cukup gunakan salah satu dari dua skrip yang disajikan di bawah ini untuk melakukan pekerjaan itu. Mereka cukup pendek dan bahkan dapat diringkas menjadi perintah satu-liner jika kita mau.

Python

#!/usr/bin/env python3
import sys
from zipfile import PyZipFile
for zip_file in sys.argv[1:]:
    pzf = PyZipFile(zip_file)
    pzf.extractall()

Pemakaian:

./pyunzip.py master.zip 

atau

python3 pyunzip.py master.zip

Perl

#!/usr/bin/env perl
use Archive::Extract;
foreach my $filepath (@ARGV){
    my $archive = Archive::Extract->new( archive => $filepath );
    $archive->extract;
}

Pemakaian:

./perlunzip master.zip

atau

perl perlunzip.pl master.zip

Lihat juga

Sergiy Kolodyazhnyy
sumber
1
Terima kasih, persis apa yang saya butuhkan. Saya tidak memiliki root dan tidak ingin menginstal unzip secara manual dari sumber. Ini juga dapat digunakan dengan bash one-liner yang sebagian besar akan berfungsi (dengan asumsi tidak ada '''di dalam nama file):unzip(){ python -c "from zipfile import PyZipFile; PyZipFile( '''$1''' ).extractall()"; }
mxmlnkn
@mxmlnkn Senang saya bisa membantu :)
Sergiy Kolodyazhnyy
30

Jika direktori sumber dan tujuan sama, Anda dapat melakukannya:

unzip filename.zip
Nadeem Khan
sumber
Pada Ubuntu 17.04, -d membutuhkan untuk alasan yang tidak diketahui.
林果 皞
21

Saya lebih suka bsdtaruntuk unzip/ zip. Untuk mengekstraksi, mereka sangat mirip:

bsdtar -x -f /one/two/three/four.zip -C /five
unzip /one/two/three/four.zip -d /five

Namun untuk zip, bsdtarmenang. Katakanlah Anda memiliki input ini:

/one/two/three/alfa/four.txt
/one/two/three/bravo/four.txt

dan ingin ini di file zip:

alfa/four.txt
bravo/four.txt

Ini mudah dengan bsdtar:

bsdtar -a -c -f four.zip -C /one/two/three alfa bravo

zip tidak memiliki -dopsi seperti unzip, jadi Anda tidak memiliki cara untuk mencapai hal di atas kecuali Anda cdterlebih dahulu.

Steven Penny
sumber
Seperti yang saya ingin memberikan kemenangan pada alat fosil, tampaknya bsdtartidak cocok dengan karakter khusus seperti setidaknya satu di kata Blóðstokkinnketika uncrompressing. Saya bahkan tidak memeriksa saat mengompresi. Nyebelin sekali. : / unzipmenanganinya tanpa masalah.
Vrakfall
20

Berikut adalah uraian terperinci opsi yang menurut saya berguna:

Perintah: unzip - [opsi] zip-path.
               -d direktori opsional untuk mengekstrak file  
               -l Daftar file arsip.
               -P kata sandi Gunakan kata sandi untuk mendekripsi entri zipfile terenkripsi (jika ada).
               -T Uji file arsip dengan pemeriksaan redundansi siklik.  
               -u Perbarui file yang ada.  
               komentar arsip -z
kashminder
sumber
8

http://www.codebind.com/linux-tutorials/unzip-zip-file-using-terminal-linux-ubuntu-linux-mint-debian/ :

Instal unzip ============= Jadi pertama-tama kita perlu menginstal unzip pada sistem kita jika itu tidak diinstal. perintah unzip digunakan untuk mengekstrak file dari arsip ZIP.

Jalankan perintah berikut untuk menginstal unzip

sudo apt-get install unzip

unzip Sintaks

$ unzip [-aCcfjLlnopqtuvy] [-d dir] zipfile

Sekarang Ikuti langkah-langkah di bawah ini:

UnZip File

OPSI 1 - Jika File Zip berada di direktori / folder yang sama dengan terminal Anda dan kami ingin mengekstraknya di direktori yang berfungsi saat ini.

Gunakan perintah berikut untuk mencapai skenario yang dijelaskan di atas

sudo unzip zip_file_name.zip

jika file zip dilindungi dengan beberapa kata sandi, maka gunakan perintah berikut:

sudo ubzip -P zip_file_name.zip

Pastikan Anda menggunakan -P (huruf P) bukan -p karena ada opsi yang berbeda.

OPSI 2 - Jika file zip tidak ada di direktori yang sama dan kami ingin mengekstrak / unzip file di direktori yang berbeda.

Gunakan perintah berikut untuk mencapai skenario yang dijelaskan di atas

sudo unzip path/filename.zip -d another_path_or_same_path

jika kita tidak menggunakan opsi -d file akan diekstraksi untuk menyajikan direktori kerja.

Dan jika file zip dilindungi kata sandi, kami juga dapat menggunakan -P.

gunakan tar command di Linux / Unix

taradalah singkatan dari Tape Archive. perintah tar digunakan untuk Memanipulasi arsip di Linux / Unix. Administrator sistem sering menggunakan perintah tar untuk menyalin sekelompok file atau direktori menjadi arsip yang sangat terkompresi yang disebut tarballatau tar, bzipdan gzipdi sistem Linux / Unix .

tar Sintaks

tar [OPTION...] [FILE]...

Atau

tar diperlukan Bendera

tar {-r|-t|-c|-x|-u}

tar Bendera opsional

tar {one of the required Flags} [ -d ][-B] [ -F ] [ -E ] [ -i ] [-h ] [ -l ] [ -m ] [ -o ] [ -p ] [ -w] [ -s ] [ -U ] [ -v ]
[-Number] [-b Blocks] [-f Archive]

Contohnya

Buat File Arsip tar dengan Mengompresi Direktori atau File Tunggal

Perintah terminal di bawah ini akan membuat .tarfile yang disebut sample_dir.tardengan direktori /home/codebind/sample_diratau sample_dirdalam direktori kerja saat ini.

ripon@ripon:~$  tar -cvf sample_dir.tar sample_dir
sample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$ ls
sample_dir sample_dir.tar

masukkan deskripsi gambar di sini

Inilah arti sebenarnya dari flag tersebut (-cvf)

-c, --create- buat arsip baru

-x, --extract, --get- ekstrak file dari arsip

-f, --file ARCHIVE- Gunakan file arsip atau perangkat ARCHIVE

Buat tar.gzatau tgzArsipkan File dengan Mengompresi Direktori atau File Tunggal

Perintah terminal di bawah ini akan membuat .tar.gzfile yang disebut sample_dir.tar.gzdengan direktori /home/codebind/sample_diratau sample_dirdalam direktori kerja saat ini.

Perhatikan bahwa kita telah menambahkan flag tambahan -z pada perintah. Inilah arti sebenarnya dari flag -z

-z, --gzip, --gunzip --ungzip- Kompres arsip dengan gzip

ripon@ripon:~$ tar -cvzf sample_dir.tar.gz sample_dirsample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$ ls
sample_dir sample_dir.tar.gz

masukkan deskripsi gambar di sini

Perintah di bawah ini akan membuat file .tgz. Yang perlu diperhatikan adalah tar.gz dan tgz keduanya serupa.

ripon@ripon:~$ tar -cvzf sample_dir.tgz sample_dirsample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$ ls
sample_dir sample_dir.tgz

Mengompresi Banyak Direktori atau File Sekaligus

Katakanlah, Misalnya kita ingin mengompres sample_dirdirektori, java_testdirektori, dan abc.pyfile ke file tar yang disebut sample_dir.tar.gz.

Jalankan perintah berikut untuk mencapai tujuan di atas.

ripon@ripon:~$ tar -cvzf sample_dir.tar.gz sample_dir java_test abc.py
sample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
java_test/
java_test/HelloCV.java
abc.py
ripon@ripon:~$ ls
sample_dir java_test abc.py sample_dir.tar.gz

masukkan deskripsi gambar di sini

Buat .bzip2File Arsip dengan Mengompresi Direktori atau File Tunggal

ripon@ripon:~$ tar -cjvf sample_dir.tar.bz2 sample_dir
sample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$ 

Perhatikan bahwa kami telah menambahkan flag tambahan -fpada perintah. Inilah arti -fsebenarnya dari flag tersebut

-f, --file ARCHIVE- Gunakan file arsip atau perangkat ARCHIVE

masukkan deskripsi gambar di sini

Ekstrak .tarFile Arsip

Kita dapat mengekstraksi atau menghapus file terkompresi menggunakan perintah tar. Perintah di bawah ini akan mengekstrak isi dari sample_dir.tarke direktori sekarang.

ripon@ripon:~$ tar -xvf sample_dir.tar
sample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$ 

masukkan deskripsi gambar di sini

Perintah berikut ini akan mengekstraksi atau Untar file dalam Direktori yang ditentukan yaitu /home/codebind/dir_namedalam hal ini.

ripon@ripon:~$ tar -xvf sample_dir.tar -C /home/codebind/dir_name
sample_dir/
sample_dir/main.cpp
sample_dir/sample.png
sample_dir/output
ripon@ripon:~$ 

kami telah menambahkan flag tambahan -Cpada perintah. Inilah arti -C sebenarnya dari flag tersebut

-C, --directory DIR - ubah ke direktori DIR

masukkan deskripsi gambar di sini

MAK Ripon
sumber
1
Juga, untuk memeriksa apakah zip / unzip diinstal, gunakan zip -vdan unzip -v. Jika diinstal akan mengembalikan sesuatu seperti UnZip 6.00 of 20 April 2009, by Debian. Original by Info-ZIP.(ditambah beberapa baris info tambahan. Jika tidak diinstal, itu akan mengatakan sesuatu seperti The program 'zip' is currently not installed. You can install it by typing: apt install zip.
SherylHohman