So komprimieren oder entpacken Sie Dateien vom Linux-Terminal

ZIP-Dateien sind ein universelles Archiv, das häufig auf Windows-, macOS- und sogar Linux-Systemen verwendet wird. Sie können mit einigen gängigen Linux-Terminalbefehlen ein ZIP-Archiv erstellen oder Dateien daraus entpacken.

Das komprimierte ZIP-Archivdateiformat

Dank der Dominanz des ZIP-Formats im Windows-Bereich sind ZIP-Dateien wahrscheinlich die weltweit am häufigsten verwendete Form komprimierter Archive.

Während .tar.gz- und tar.bz2-Dateien unter Linux üblich sind, senden Ihnen Windows-Benutzer wahrscheinlich ein Archiv im ZIP-Format. Und wenn Sie einige Dateien archivieren und an einen Windows-Benutzer senden möchten, ist das ZIP-Format die einfachste und kompatibelste Lösung für alle.

So extrahieren Sie Dateien aus einer .tar.gz- oder .tar.bz2-Datei unter Linux

zip, unzip und andere Dienstprogramme

Sie wissen vielleicht bereits, dass Linux- und Unix-ähnliche Betriebssysteme wie macOS über Tools verfügen, mit denen Sie ZIP-Dateien erstellen und Dateien daraus extrahieren können, genannt zip und unzip. Aber es gibt eine ganze Familie verwandter Dienstprogramme, wie z zipcloak, zipdetails, zipsplit , und zipinfo.

Wir haben bei einigen Linux-Distributionen überprüft, ob diese Dienstprogramme in der Standardinstallation enthalten sind. Alle Dienstprogramme waren in Ubuntu 19.04, 18.10 und 18.04 vorhanden. Sie waren auch in Manjaro 18.04 anwesend. Fedora 29 enthalten zip und unzip, aber keines der anderen Dienstprogramme und das war auch bei CentOS der Fall.

So installieren Sie die fehlenden Elemente auf Fedora 29, verwenden Sie den folgenden Befehl:

sudo dnf install perl-IO-Compress


Um die fehlenden Elemente auf CentOS 7 zu installieren, verwenden Sie den folgenden Befehl:

sudo yum install perl-IO-Compress

Zip-Installationsbefehl in Centos

Wenn eines der Zip-Dienstprogramme in einer Linux-Distribution fehlt, die oben nicht erwähnt wurde, verwenden Sie das Paketverwaltungstool dieser Linux-Distribution, um das erforderliche Paket zu installieren.

So erstellen Sie eine ZIP-Datei mit dem Zip-Befehl

Um eine ZIP-Datei zu erstellen, müssen Sie sagen zip den Namen der Archivdatei und welche Dateien darin enthalten sein sollen. Sie müssen dem Archivnamen nicht die Erweiterung „.zip“ hinzufügen, aber es schadet nicht, wenn Sie dies tun.

So erstellen Sie eine Datei namens source_code.zip die alle C-Quellcodedateien und Headerdateien im aktuellen Verzeichnis enthält, würden Sie diesen Befehl verwenden:

zip source_code *.c *.h

Jede Datei wird beim Hinzufügen aufgelistet. Der Name der Datei und der Grad der Komprimierung, der für diese Datei erreicht wurde, werden angezeigt.

Wenn Sie sich das neue ZIP-Archiv ansehen, sehen Sie, dass die Dateiendung „.zip“ automatisch hinzugefügt wurde von zip.

ls -l source_code.zip


Wenn Sie die Ausgabe von nicht sehen möchten zip Verwenden Sie beim Erstellen der ZIP-Datei die -q (ruhige) Option.

zip -q source_code *.c *.h

Einschließen von Verzeichnissen in ZIP-Dateien

Um Unterverzeichnisse in die ZIP-Datei aufzunehmen, verwenden Sie die -r (rekursive) Option und fügen Sie den Namen des Unterverzeichnisses in die Befehlszeile ein. Verwenden Sie diesen Befehl, um wie zuvor eine ZIP-Datei zu erstellen und auch das Archiv-Unterverzeichnis einzubinden.

zip -r -q source_code archive/ *.c *.h

Um Rücksicht auf die Person zu nehmen, die die Dateien aus der von Ihnen erstellten ZIP-Datei extrahiert, ist es oft höflich, ZIP-Dateien mit den darin enthaltenen Dateien in einem Verzeichnis zu erstellen. Wenn die Person, die die ZIP-Datei erhält, sie entpackt, werden alle Dateien ordentlich in einem Verzeichnis auf ihrem Computer abgelegt.

Im folgenden Befehl archivieren wir die work Verzeichnis und alle Unterverzeichnisse. Beachten Sie, dass dieser Befehl vom übergeordneten Verzeichnis des work Mappe.

zip -r -q source_code work/

Einstellen der Komprimierungsstufe

Sie können festlegen, wie stark die Dateien komprimiert werden, wenn sie dem ZIP-Archiv hinzugefügt werden. Der Bereich reicht von 0 bis 9, wobei 0 überhaupt keine Komprimierung bedeutet. Je höher die Komprimierung, desto länger dauert die Erstellung der ZIP-Datei. Bei ZIP-Dateien von bescheidener Größe ist der Zeitunterschied kein wesentlicher Nachteil. Aber für ZIP-Dateien von bescheidener Größe ist die Standardkomprimierung (Stufe 6) wahrscheinlich sowieso gut genug.

Bekommen zip Um eine bestimmte Komprimierungsstufe zu verwenden, übergeben Sie die Nummer als Option auf der Befehlszeile mit einem „-“, wie folgt:

zip -0 -r -q source_code work/


Die Standardkomprimierungsstufe ist 6. Es ist nicht erforderlich, die -6 Option, aber es schadet nicht, wenn Sie dies tun.

zip -r -q source_code work/

Die maximale Komprimierungsstufe ist Stufe 9.

zip -9 -r -q source_code work/

Bei der Auswahl der hier archivierten Dateien und Verzeichnisse beträgt der Unterschied zwischen keiner Komprimierung (Stufe 0) und der Standardkomprimierung (Stufe 6) 400K. Der Unterschied zwischen der Standardkomprimierung und der höchsten Komprimierungsstufe (Stufe 9) beträgt nur 4K.

Das mag nicht viel erscheinen, aber für Archive mit Hunderten oder sogar Tausenden von Dateien würde die geringe zusätzliche Komprimierung pro Datei eine lohnende Platzersparnis bedeuten.

Hinzufügen von Passwörtern zu ZIP-Dateien

Das Hinzufügen von Passwörtern zu ZIP-Dateien ist einfach. Verwenden Sie die -e (verschlüsseln) und Sie werden aufgefordert, Ihr Passwort einzugeben und es zur Überprüfung erneut einzugeben.

zip -e -r -q source_code work/

So entpacken Sie eine ZIP-Datei mit dem unzip-Befehl

Um die Dateien aus einer ZIP-Datei zu extrahieren, verwenden Sie den Befehl unzip und geben Sie den Namen der ZIP-Datei an. Beachten Sie, dass Sie die Erweiterung „.zip“ angeben müssen.

unzip source_code.zip

Wenn die Dateien extrahiert werden, werden sie im Terminalfenster aufgelistet.


ZIP-Dateien enthalten keine Details zum Dateieigentum. Für alle extrahierten Dateien ist der Besitzer auf den Benutzer festgelegt, der sie extrahiert.

So wie zip, unzip hat ein -q (leise) Option, damit Sie die Dateiliste beim Extrahieren der Dateien nicht sehen müssen.

unzip -q source_code.zip

Extrahieren von Dateien in ein Zielverzeichnis

Um die Dateien in ein bestimmtes Verzeichnis zu extrahieren, verwenden Sie die -d (Verzeichnis) und geben Sie den Pfad zu dem Verzeichnis an, in das das Archiv entpackt werden soll.

unzip -q source_code.zip -d ./development

Extrahieren Sie passwortgeschützte ZIP-Dateien

Wenn eine ZIP-Datei mit einem Passwort erstellt wurde, unzip wird Sie nach dem Passwort fragen. Wenn Sie nicht das richtige Passwort angeben, unzip extrahiert die Dateien nicht.

unzip -q source_code.zip

Wenn es Ihnen egal ist, dass Ihr Passwort von anderen gesehen wird – oder in Ihrem Befehlsverlauf gespeichert wird – können Sie das Passwort in der Befehlszeile mit dem -P (Passwort)-Option. (Sie müssen ein großes „P“ verwenden.)

unzip -P fifty.treacle.cutlass -q source_code.zip

Ausschließen von Dateien

Wenn Sie eine bestimmte Datei oder Dateigruppe nicht extrahieren möchten, verwenden Sie die -x (ausschließen) Option. In diesem example, möchten wir alle Dateien extrahieren, außer denen mit der Endung „.h“.

unzip -q source_code.zip -x *.h

Überschreiben von Dateien

Angenommen, Sie haben ein Archiv extrahiert, aber einige der extrahierten Dateien versehentlich gelöscht.


Eine schnelle Lösung dafür wäre, die Dateien noch einmal zu extrahieren. Wenn Sie jedoch versuchen, die ZIP-Datei in das gleiche Verzeichnis wie zuvor zu extrahieren, unzip wird Sie zu einer Entscheidung zum Überschreiben der Dateien auffordern. Es wird eine der folgenden Antworten erwartet.

Neben dem r (Umbenennen) Antwort, bei diesen Antworten muss die Groß-/Kleinschreibung beachtet werden.

  • und: Ja, diese Datei überschreiben
  • n: Nein, diese Datei nicht überschreiben
  • EIN: Alle, überschreibe alle Dateien
  • N: Keine, überschreibe keine der Dateien
  • R: Umbenennen, extrahieren Sie diese Datei, aber geben Sie ihr einen neuen Namen. Sie werden nach einem neuen Namen gefragt.

Zwingen unzip Um vorhandene Dateien zu überschreiben, verwenden Sie die -o (überschreiben) Option.

unzip -o -q source_code.zip

Der effizienteste Weg, die fehlenden Dateien zu ersetzen, wäre, unzip Extrahieren Sie nur alle Dateien im Archiv, die sich nicht im Zielverzeichnis befinden. Verwenden Sie dazu die -n (nie überschreiben) Option.

unzip -n source_code.zip

Blick in eine ZIP-Datei

Es ist oft nützlich und lehrreich, eine Liste der Dateien in einer ZIP-Datei anzuzeigen, bevor Sie sie extrahieren. Sie können dies mit der -l (Listenarchiv) Option. Es wird durchgefädelt less um die Ausgabe überschaubar zu machen.

unzip -l source_code.zip | less


Die Ausgabe zeigt die Verzeichnisse und Dateien innerhalb der ZIP-Datei, deren Länge sowie Datum und Uhrzeit der Aufnahme in das Archiv. Drücken Sie „q“, um von zu beenden less.

Es gibt andere Möglichkeiten, einen Blick in eine ZIP-Datei zu werfen, die unterschiedliche Arten von Informationen enthalten, wie wir sehen werden.

Fügen Sie ein Passwort mit dem zipcloak-Befehl hinzu

Wenn Sie eine ZIP-Datei erstellt, aber vergessen haben, ein Passwort hinzuzufügen, was können Sie tun? Sie können der ZIP-Datei schnell ein Passwort hinzufügen, indem Sie das zipcloak Befehl. Übergeben Sie den Namen der ZIP-Datei in der Befehlszeile. Sie werden nach einem Passwort gefragt. Sie müssen das Passwort durch eine zweite Eingabe verifizieren.

zipcloak source_code.zip

Dateidetails anzeigen mit dem zipdetails-Befehl

Die zipdetails Befehl zeigt Ihnen viele Informationen zur ZIP-Datei an. Der einzig sinnvolle Weg, die Ausgabemenge dieses Befehls zu handhaben, besteht darin, ihn durchzuleiten less .

zipdetails source_code.zip | less

Beachten Sie, dass die Informationen auch dann Dateinamen enthalten, wenn die ZIP-Datei passwortgeschützt ist. Diese Art von Informationen wird in der ZIP-Datei als Metadaten gespeichert und ist nicht Teil der verschlüsselten Daten.

Durchsuchen Sie die Datei mit dem zipgrep-Befehl

Die zipgrep Mit dem Befehl können Sie innerhalb der Dateien in einer ZIP-Datei suchen. Im Folgenden example, möchten wir wissen, welche Dateien innerhalb der ZIP-Datei den Text „keyval.h“ enthalten.

zipgrep keyval.h source_code.zip


Wir können sehen, dass die Dateien slang.c und getval.c enthalten die Zeichenfolge „keyval.h“. Wir können auch sehen, dass es zwei Kopien jeder dieser Dateien in verschiedenen Verzeichnissen in der ZIP-Datei gibt.

Informationen mit dem zipinfo-Befehl anzeigen

Die zipinfo Befehl bietet Ihnen eine weitere Möglichkeit, in eine ZIP-Datei zu schauen. Wie zuvor leiten wir die Ausgabe durch less.

zipinfo source_code.zip | less

Die Ausgabe zeigt von links nach rechts:

  • Die Dateiberechtigungen
  • Die Version des Tools, das zum Erstellen der ZIP-Datei verwendet wurde
  • Die ursprüngliche Dateigröße
  • Ein Dateideskriptor (unten beschrieben)
  • Die Kompressionsmethode (in diesem Fall Deflation)
  • Der Daten- und Zeitstempel
  • Der Name der Datei und eines beliebigen Verzeichnisses

Der Dateideskriptor besteht aus zwei Zeichen. Das erste Zeichen ist ein „t“ oder ein „b“, um eine Text- oder Binärdatei anzuzeigen. Wenn es sich um einen Großbuchstaben handelt, wird die Datei verschlüsselt. Das zweite Zeichen kann eines von vier Zeichen sein. Dieses Zeichen stellt dar, welche Art von Metadaten für diese Datei enthalten sind: keine, ein erweiterter lokaler Header, ein „zusätzliches Feld“ oder beides.

  • -: Wenn keines von beiden vorhanden ist, ist das Zeichen ein Bindestrich
  • l: wenn ein erweiterter lokaler Header, aber kein zusätzliches Feld vorhanden ist
  • x: wenn kein erweiterter lokaler Header, aber ein zusätzliches Feld vorhanden ist
  • X: wenn es einen erweiterten lokalen Header und ein zusätzliches Feld gibt

Teilen Sie die Datei mit dem zipsplit-Befehl

Wenn Sie die ZIP-Datei an eine andere Person senden müssen, es jedoch Größenbeschränkungen oder Probleme bei der Übertragung der Datei gibt, können Sie die zipsplit Befehl, um die ursprüngliche ZIP-Datei in mehrere kleinere ZIP-Dateien aufzuteilen.

Die -n Mit der Option (Größe) können Sie eine maximale Größe für jede der neuen ZIP-Dateien festlegen. In diesem example, wir teilen die source_code.zip Datei. Wir möchten, dass keine der neuen ZIP-Dateien größer als 100 KB (102400 Byte) ist.

zipsplit -n 102400 source_code.zip


Die von Ihnen gewählte Größe darf nicht kleiner sein als die Größe einer der Dateien in der ZIP-Datei.

Mit diesen Befehlen können Sie Ihre eigenen ZIP-Dateien erstellen, erhaltene ZIP-Dateien entpacken und verschiedene andere Operationen damit ausführen, ohne jemals das Linux-Terminal verlassen zu müssen.

Linux-Befehle
DateienTeer · pv · Katze · tac · chmod · grep · unterschied · sed · Mit · Mann · geschoben · popd · fsck · Testdisk · seq · fd · pandoc · CD · $PFAD · awk · beitreten · jq · falten · einzigartig · Journalctl · Schwanz · stat · ls · fstab · Echo · weniger · chgrp · chown · rev · aussehen · Saiten · Typ · umbenennen · Postleitzahl · entpacken · montieren · ummount · Installieren · fdisk · mkfs · rm · rmdir · rsync · df · gpg · wir · Nano · mkdir · von · ln · Patch · Konvertieren · rclon · Fetzen · srm
Prozessealias · Bildschirm · oben · nett · renice · Fortschritt · strace · System · tmux · chsh · Geschichte · bei · Charge · kostenlos · welcher · dmesg · chfn · Benutzermod · ps · chroot · xargs · tty · kleiner Finger · lsof · vmstat · Auszeit · Mauer · Jawohl · töten · Schlaf · sudo · es ist · Zeit · groupadd · Benutzermod · Gruppen · lshw · abschalten · neu starten · Halt · ausschalten · passwd · lscpu · crontab · Datum · bg · fg
Vernetzungnetstat · Klingeln · Traceroute · ip · ss · Wer ist · fail2ban · bmon · Sie · Finger · nmap · ftp · curl · wget · Wer · Wer bin ich · w · iptables · ssh-keygen · ufw

Beste Linux-Laptops für Entwickler und Enthusiasten

Related Posts