Wie entpacke ich eine Zip-Datei vom Terminal?

1413

Ich habe gerade eine ZIP-Datei aus dem Internet heruntergeladen. Ich möchte das Terminal verwenden, um die Datei zu entpacken. Was ist der richtige Weg, um dies zu tun?

Ubuntu-Nerd
quelle
3
Extrahieren Sie alle Dateien aus dem aktuellen Ordner, den Sie verwenden können: unzip \ *. Zip
burtsevyg
2
@burtsevyg der Backslash ist da nicht nötig. Dadurch wird die Muschel \*als buchstäbliches Sternsymbol behandelt. Verwenden Sie unzip *.zipdiese *.zip
Option
Mit *allein nicht für mich arbeiten. Es hat filename not matchedFehler verursacht . \*hat den Job gemacht.
arman_aegit
Ich empfehle, "unar" anstelle eines zip-spezifischen zu verwenden und zu lernen, es sei denn, Sie benötigen bestimmte Funktionen. "Unterstützte Dateiformate sind Zip, Tar-GZip, Tar-BZip2, RAR, 7-zip, LhA, StuffIt und viele andere alte und unbekannte Formate."
Masterxilo
In Ubuntu sind bereits mehrere Komprimierungs- / Dekomprimierungs-Tools installiert. Führen Sie apropos zipvon der Konsole aus, um die vollständige Liste anzuzeigen.
Stephen W. Wright

Antworten:

1927

Wenn der unzipBefehl noch nicht auf Ihrem System installiert ist, führen Sie Folgendes aus:

sudo apt-get install unzip

Wenn Sie nach der Installation des Dienstprogramms zum Entpacken in einen bestimmten Zielordner extrahieren möchten, können Sie Folgendes verwenden:

unzip file.zip -d destination_folder

Wenn das Quell- und das Zielverzeichnis identisch sind, können Sie einfach Folgendes tun:

unzip file.zip
Kelley
quelle
83
Wenn Sie sich bereits in dem Verzeichnis befinden, in das die Datei entpackt werden soll, lassen Sie das zweite und dritte Argument weg, z. B.unzip /path/to/file.zip
Severo Raz,
2
Ich habe gerade diesen Befehl verwendet. Dies ist ein Beispiel. Schritt 1 (Ich habe in das Verzeichnis gewechselt, in dem die Zip-Datei gespeichert ist): cd /home/paf/Copy/Programming/Javascript/Json Schritt 2 (Ich extrahiere die Zip-Datei in das eben erwähnte Verzeichnis):unzip file.zip -d /home/paf/Copy/Programming/Javascript/Json
Pablofiumara
2
unzipkann ein Standardprogramm sein. Mit anderen Worten, Sie müssen es möglicherweise nicht installieren.
Noobninja
2
@Aevi Check man pages[-d exdir] An optional directory to which to extract files.
WAKR
4
Stellen Sie sicher, dass Sie in ein Verzeichnis extrahieren, im Gegensatz zu Tar-Archiven, dass viele Leute Dutzende von Dateien in ihr Stammverzeichnis ihrer Zip-Dateien aufnehmen. Dies kann ein echtes Durcheinander verursachen !!!
Steve
230

Sie können einfach verwenden unzip.

Es installieren:

apt-get install unzip

Und benutze es:

cd /path/to/file
unzip file.zip
Panther
quelle
117

Ein nützlicheres Tool ist 7zdas Komprimieren und Entpacken einer Reihe von Komprimierungsformaten, insbesondere lzmades Protokolls mit den höchsten Komprimierungsraten.

Dieser Befehl installiert 7z:

sudo apt-get install p7zip-full

Dieser Befehl listet den Inhalt der Zip auf:

7z l zipfile.zip

Dieser Befehl extrahiert den Inhalt der Zip:

7z x zipfile.zip
Chris
quelle
5
7z ebehält die Verzeichnisstruktur nicht bei - 7z xtut ...
assylias
2
13.10 sagt, dass 7z nicht existiert. Ich denke, es muss sudo apt-get
7zip
6
Ich denke, der Installationsbefehl sollte sein sudo apt-get install p7zipoder sudo apt-get install p7zip-fullSie benötigen die Vollversion, um den 7zBefehl zu erhalten. Die Vollversion ist auch die einzige, die mit Reißverschluss und anderen Formaten aus den beiden umgehen kann.
Automatico
1
Könnten Sie "Ein nützlicheres Werkzeug" erläutern? Vergleichen Sie zu entpacken? Können Sie Beispiele für Funktionen nennen, die 7z nützlicher machen, und in welchen Kontexten wird 7z möglicherweise bevorzugt?
David LeBauer
1
Für manche ist Entpacken nützlicher: Einfach zu bedienen und sein Name zu merken.
Shy Robbiani
47

Sie können verwenden:

unzip file.zip -d somedir

zu extrahieren yourpath/somedir

Wenn Sie in einen absoluten Pfad extrahieren möchten, verwenden Sie

sudo unzip file.zip -d /somedir
Cristobalhdez
quelle
39

Verwenden von Skriptwerkzeugen: Perl und Python

Viele Antworten hier erwähnen Tools, die eine Installation erfordern, aber niemand hat erwähnt, dass zwei der Ubuntu-Skriptsprachen, Perl und Python, bereits alle erforderlichen Module enthalten, mit denen Sie ein Zip-Archiv entpacken können, was bedeutet, dass Sie nichts installieren müssen sonst. Verwenden Sie einfach eines der beiden unten aufgeführten Skripte, um die Arbeit zu erledigen. Sie sind ziemlich kurz und können sogar zu einem einzeiligen Befehl zusammengefasst werden, wenn wir wollten.

Python

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

Verwendungszweck:

./pyunzip.py master.zip 

oder

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;
}

Verwendungszweck:

./perlunzip master.zip

oder

perl perlunzip.pl master.zip

Siehe auch

Sergiy Kolodyazhnyy
quelle
1
Danke, genau das, was ich brauche. Ich habe kein Root-Verzeichnis und möchte nicht manuell aus dem Quellcode entpacken. Dies kann auch mit einem Bash-Einzeiler verwendet werden, der meistens funktioniert (vorausgesetzt, '''der Dateiname enthält keine ):unzip(){ python -c "from zipfile import PyZipFile; PyZipFile( '''$1''' ).extractall()"; }
mxmlnkn
@mxmlnkn Ich bin froh, dass ich helfen konnte :)
Sergiy Kolodyazhnyy
30

Wenn das Quell- und das Zielverzeichnis identisch sind, können Sie einfach Folgendes tun:

unzip filename.zip
Nadeem Khan
quelle
Unter Ubuntu 17.04 wird -d aus unbekannten Gründen benötigt.
林果 皞
21

Ich ziehe bsdtaran unzip/ zip. Zum Extrahieren sind sie ziemlich ähnlich:

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

Allerdings zum Zippen, bsdtargewinnt. Angenommen, Sie haben diese Eingabe:

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

und möchte dies in der zip-Datei:

alfa/four.txt
bravo/four.txt

Das geht ganz einfach mit bsdtar:

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

zip hat keine -dOption wie unzip. Sie haben also keine Möglichkeit, das oben genannte Ziel zu erreichen, es sei denn, Sie müssen es cdzuerst tun .

Steven Penny
quelle
So sehr ich einem Foss-Tool den Gewinn geben möchte, bsdtarscheint es nicht gut mit Sonderzeichen wie mindestens einem im Wort zu sein, Blóðstokkinnwenn man es dekomprimiert. Ich habe nicht einmal beim Komprimieren nachgesehen. Ach wie schade. : / unzipbehandelt es problemlos.
Vrakfall
20

Hier ist die detaillierte Beschreibung der Optionen, die ich nützlich finde:

Befehl: unzip - [Option] zip-Pfad.
               -d Ein optionales Verzeichnis, in das Dateien extrahiert werden sollen  
               -l Archivdateien auflisten.
               -P Passwort Verwenden Sie das Passwort , um verschlüsselte Zip-Datei-Einträge (falls vorhanden) zu entschlüsseln.
               -t Archivdateien mit zyklischer Redundanzprüfung testen.  
               -u Aktualisiere die vorhandenen Dateien.  
               -z Archivkommentar
Kashminder
quelle
8

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

Installiere unzip ============ Zuerst müssen wir unzip auf unserem System installieren, wenn es nicht installiert ist. Mit dem Befehl unzip werden Dateien aus einem ZIP-Archiv extrahiert.

Führen Sie zum Installieren den folgenden Befehl aus unzip

sudo apt-get install unzip

unzip Syntex

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

Führen Sie nun die folgenden Schritte aus:

Entpacken Sie die Datei

OPTION 1 - Befindet sich die Zip-Datei in demselben Verzeichnis / Ordner, in dem sich Ihr Terminal befindet, und möchten wir sie in das aktuelle Arbeitsverzeichnis extrahieren.

Verwenden Sie den folgenden Befehl, um das oben beschriebene Szenario zu erreichen

sudo unzip zip_file_name.zip

Wenn die ZIP-Datei mit einem Kennwort geschützt ist, verwenden Sie den folgenden Befehl:

sudo ubzip -P zip_file_name.zip

Bitte stellen Sie sicher, dass Sie -P (Großbuchstabe P) und nicht -p verwenden, da dies verschiedene Optionen sind.

OPTION 2 - Wenn sich die ZIP-Datei nicht im selben Verzeichnis befindet und die Datei in ein anderes Verzeichnis extrahiert / entpackt werden soll.

Verwenden Sie den folgenden Befehl, um das oben beschriebene Szenario zu erreichen

sudo unzip path/filename.zip -d another_path_or_same_path

Wenn wir die Option -d nicht verwenden, wird die Datei in das aktuelle Arbeitsverzeichnis extrahiert.

Und wenn die zip-Datei passwortgeschützt ist, können wir auch verwenden -P.

Verwenden Sie den Befehl tar unter Linux / Unix

tarist eine Abkürzung für Tape Archive. Der Befehl tar dient zum Manipulieren von Archiven unter Linux / Unix. Systemadministratoren verwendet tar - Befehl häufig eine Reihe von Dateien oder Verzeichnissen in hoch komprimiertes Archiv zu zerreißen , die genannt werden , tarballoder tar, bzipund gzipin Linux / Unix - System.

tar Syntex

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

Oder

Teer erforderlich Flags

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

tar optional Flags

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]

Beispiele

Erstellen Sie eine tar-Archivdatei, indem Sie ein Verzeichnis oder eine einzelne Datei komprimieren

Mit dem folgenden Terminalbefehl wird eine .tarDatei erstellt, die sample_dir.tarmit einem Verzeichnis /home/codebind/sample_diroder sample_dirim aktuellen Arbeitsverzeichnis aufgerufen wird .

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

Bildbeschreibung hier eingeben

Dies sind die tatsächlichen Bedeutungen dieser Flags (-cvf)

-c, --create- ein neues Archiv erstellen

-x, --extract, --get- Dateien aus einem Archiv extrahieren

-f, --file ARCHIVE- Verwenden Sie die Archivdatei oder das Gerät ARCHIVE

Erstellen tar.gzoder tgzarchivieren Sie eine Datei, indem Sie ein Verzeichnis oder eine einzelne Datei komprimieren

Mit dem folgenden Terminalbefehl wird eine .tar.gzDatei erstellt, die sample_dir.tar.gzmit einem Verzeichnis /home/codebind/sample_diroder sample_dirim aktuellen Arbeitsverzeichnis aufgerufen wird .

Beachten Sie, dass wir dem Befehl ein zusätzliches Flag -z hinzugefügt haben. Hier ist, was das Flag -z tatsächlich bedeutet

-z, --gzip, --gunzip --ungzip- Komprimiere das Archiv mit 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

Bildbeschreibung hier eingeben

Der folgende Befehl erstellt eine .tgz-Datei. Eines davon ist tar.gz und tgz, beide sind ähnlich.

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

Mehrere Verzeichnisse oder Dateien gleichzeitig komprimieren

Angenommen, wir möchten beispielsweise das sample_dirVerzeichnis, das java_testVerzeichnis und die abc.pyDatei in eine TAR-Datei mit dem Namen komprimieren sample_dir.tar.gz.

Führen Sie den folgenden Befehl aus, um das oben genannte Ziel zu erreichen.

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

Bildbeschreibung hier eingeben

Erstellen Sie eine .bzip2Archivdatei, indem Sie ein Verzeichnis oder eine einzelne Datei komprimieren

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:~$ 

Beachten Sie, dass wir -fdem Befehl ein zusätzliches Flag hinzugefügt haben. Hier ist, was das Flag -ftatsächlich bedeutet

-f, --file ARCHIVE- Verwenden Sie die Archivdatei oder das Gerät ARCHIVE

Bildbeschreibung hier eingeben

Extract .tarArchive File

Wir können die komprimierte Datei mit dem Befehl tar extrahieren oder entpacken. Mit dem folgenden Befehl wird der Inhalt sample_dir.tarin das aktuelle Verzeichnis extrahiert .

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

Bildbeschreibung hier eingeben

Der folgende Befehl extrahiert oder entpackt Dateien im angegebenen Verzeichnis, dh /home/codebind/dir_namein diesem Fall.

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:~$ 

Wir haben -Cdem Befehl ein zusätzliches Flag hinzugefügt. Hier ist, was das Flag -C eigentlich bedeutet

-C, --directory DIR - in das Verzeichnis DIR wechseln

Bildbeschreibung hier eingeben

MAK Ripon
quelle
1
Um zu überprüfen, ob zip / unzip installiert ist, verwenden Sie zip -vund unzip -v. Wenn es installiert ist, wird so etwas zurückgegeben UnZip 6.00 of 20 April 2009, by Debian. Original by Info-ZIP.(plus mehrere Zeilen mit zusätzlichen Informationen. Wenn es nicht installiert ist, wird so etwas The program 'zip' is currently not installed. You can install it by typing: apt install zip
angezeigt