So verwenden Sie den Zip-Befehl in Linux zum Komprimieren von Dateien und Ordnern

Der zip-Befehl in Linux ist wahrscheinlich der einfachste und intuitivste Weg, um mit ZIP-Dateien in der Befehlszeile zu arbeiten. Und nicht nur das, das ZIP-Dateiformat ist universell – fast jedes Betriebssystem hat ein natives Programm, das damit arbeiten kann. Hier sind alle Möglichkeiten, wie Sie diesen Befehl in jeder Linux-Befehlszeile verwenden können.
Inhaltsverzeichnis
- So installieren Sie Zip in Linux
- Zip-Befehl in Linux: Syntax und Optionen
- So zippen Sie eine Datei in Linux mit dem Zip-Befehl
- So zippen Sie einen Ordner in Linux mit dem Zip-Befehl
- So entpacken Sie eine Datei mit dem Linux-Zip-Befehl
- So entpacken Sie einen Linux-Ordner mit Zip
- Häufig gestellte Fragen
So installieren Sie Zip in Linux
Die neueste Version des Linux zip-Befehls sollte in allen gängigen Paketmanagern verfügbar sein.
Für Debian/Ubuntu:
sudo apt install zipFür Arch Linux:
sudo pacman -S zipFür Fedora:
sudo dnf install zipFür Gentoo
sudo emerge --ask zipHinweis: Stellen Sie sicher, dass Sie Ihren Paketmanager zuerst aktualisieren, um die neueste Version des zip-Befehls zu erhalten, bevor Sie etwas installieren. Sie können lernen, wie das geht und mehr mit unserem Cheatsheet für Linux-Paketmanager.
Hinweis: Mit installiertem zip-Befehl steht jetzt auch der unzip-Befehl zur Verfügung.
Zip-Befehl in Linux: Syntax und Optionen
Es gibt eine grundlegende Syntax für den zip-Befehl, und er benötigt nur zwei Parameter: den Dateinamen der Ausgabedatei im ZIP-Format und den Dateinamen des Eingabedokuments.
zip [optionen] 
Ihre Positionen sind hier wichtig. Wenn Sie sie umdrehen, wird der Computer sich fragen, warum Sie versuchen, eine „file-to-archive.jpg“ aus einer nicht existierenden „zip-file.zip“ zu erstellen, und gibt einen Fehler zurück.
Was die Optionen betrifft, müssen Sie mit Flags arbeiten. Es gibt 8 Flags, die Sie normalerweise für die normale Verwendung benötigen:
-dlöscht ausgewählte archivierte Einträge in der ZIP-Datei.-qführt die Aufgabe leise aus, ohne etwas im Terminal auszugeben.-Ttestet die Integrität der ZIP-Datei.-everschlüsselt die Datei.-uaktualisiert die ZIP-Datei, indem neue Dateien in das Archiv hinzugefügt werden.-mverschiebt die Datei in das Archiv.-rfügt rekursiv Dateien innerhalb eines Ordners in eine ZIP-Datei ein.-xschließt Dateien mit den ausgewählten Dateinamen aus.-ischließt nur Dateien mit den ausgewählten Namen ein.
Sie können die Flags überall dort platzieren, wo Sie möchten, ob sie vor der Ausgabe, nach der Eingabe oder zwischen den beiden stehen – Sie können sogar mehrere Flags in beliebiger Reihenfolge verstreut in der Zeile verwenden. Stellen Sie nur sicher, dass Sie sie nach dem Tippen von zip eingeben.
Die Ausnahme sind -x und -i, die nach ihrer Verwendung eine neue Eingabe benötigen.
So zippen Sie eine Datei in Linux mit dem Zip-Befehl
Der einfachste Weg, Dateien mit dem zip-Befehl zu archivieren, besteht darin, zip gefolgt vom Dateinamen der ZIP-Datei und dann der Datei, die Sie archivieren oder komprimieren möchten, einzugeben. Flags sind optional, sodass Sie es so machen können, um schnell eine Datei in Linux zu zippen.
zip archive.zip text_file.txt
Sie können auch weitere Dateien hinzufügen, indem Sie die anderen nach der ersten Datei, die Sie archivieren möchten, hinzufügen. Und wenn eine dieser Dateien Leerzeichen in ihren Namen hat, können Sie sie in Anführungszeichen setzen.
zip archive.zip "file 1.txt" "file 2.txt" "file 3.txt" "file 4.txt"
Verwendung des -d-Flags
Das -d-Flag ermöglicht es Ihnen, eine Datei zu löschen, die im ZIP-Archiv archiviert wurde, auf die gleiche Weise, wie Sie sie hinzugefügt hätten.
zip -d archive.zip remove_me.jpg
Sie können es auch verwenden, um ganze Ordner im Archiv zu entfernen. Dies funktioniert jedoch nicht für Dateien außerhalb der ZIP-Datei (Sie können es also nicht verwenden, um Dateien nach dem Archivieren zu löschen).
Verwendung des -q-Flags
Das -q-Flag sorgt dafür, dass zip keine Nachricht zurückgibt, wenn es seine Aufgabe erledigt.
zip -q archive.zip text_file.txt
Es ist nützlich, wenn Sie den zip-Befehl mit einem Skript verwenden. Wenn Sie dies jedoch selbst verwenden, möchten Sie möglicherweise das -q-Flag vermeiden, da Sie nicht wissen, ob der Archivierungsprozess erfolgreich war, ohne mit dem dir- oder ls-Befehl zu überprüfen.
Verwendung des -T-Flags
Einige ZIP-Dateien können während des Downloads beschädigt werden – das passiert. Sie können das -T-Flag verwenden, um die Integrität zu überprüfen, damit Sie wissen, ob es sich wirklich um eine beschädigte Datei handelt oder ob Sie einfach das falsche Passwort eingeben.
zip -T archive.zip
Dies ist besonders wichtig, wenn Sie große Dateien wie Betriebssystem-Images herunterladen. Bei solchen Dateien können Sie sie erfolgreich auf einen Live-USB brennen und am Ende Fehler erhalten, wenn Sie die Image-Datei auf Ihrem Computer ausführen. Das Gleiche gilt für Videos und Musik, die an zufälligen Stellen abgeschnitten werden.
Verwendung des -u-Flags
Wenn Sie eine neue Datei in eine vorhandene ZIP-Datei hinzufügen möchten, können Sie das -u-Flag verwenden.
zip -u archive.zip new_file.txt
Sie können auch weitere Dateien hinzufügen, indem Sie sie nach der ersten Datei hinzufügen, als ob Sie den zip-Befehl normal verwenden würden, um ein neues ZIP-Archiv zu erstellen.
Verwendung des -e-Flags
Wenn Sie ein Passwort hinzufügen möchten, müssen Sie das -e-Flag verwenden. Diese Option wendet das Passwort und die Verschlüsselung nur auf die Datei an, die Sie in die ZIP-Datei innerhalb des Befehls hinzufügen, sodass vorherige Dateien unverschlüsselt bleiben, wenn Sie dies mit dem -u-Flag verwenden.
zip -e archive.zip text_file.txt
Das Tolle an ZIP-Dateien ist, dass der Passworterstellungsprozess auch eine zusätzliche Schutzschicht hinzufügt, zusätzlich zum Zugriff. Ihr Passwort funktioniert wie eine digitale Signatur, die verwendet wird, um eine zusätzliche Verschlüsselungsschicht zu entschlüsseln, die in die ZIP-Datei eingefügt wurde.
Verwendung des -m-Flags
Schließlich löscht das -m-Flag die Originaldatei, nachdem sie in die ZIP-Datei archiviert wurde. Betrachten Sie dies als Automatisierung eines zusätzlichen Schrittes, sodass Sie es nicht selbst entfernen müssen.
zip -m archive.zip text_file.txt
Ein wichtiger Punkt, den Sie beachten sollten: Das -m-Flag löscht Dateien so, dass sie ohne Verwendung eines Datenwiederherstellungstools nicht wiederhergestellt werden können. Stellen Sie also sicher, dass Sie ein Backup haben oder entfernen Sie Dinge manuell mit dem rm-Befehl.
So zippen Sie einen Ordner in Linux mit dem Zip-Befehl
Wenn Sie den zip-Befehl auf einen Rohordner anwenden, erhalten Sie einen Ordner, der keine Dateien enthält. Wenn Sie versuchen, einen Ordner zu zippen, müssen Sie das -r-Flag verwenden.
Verwendung des -r-Flags
Das -r-Flag, auch rekursiv genannt, durchläuft jeden Inhalt eines Ordners und seiner Unterordner und archiviert jeden einzelnen in die ZIP-Datei. Es behält auch die aktuelle Struktur jedes Unterordners bei.
zip -r archive.zip my_folder
Dies funktioniert auch, wenn Sie alles im aktuellen Ordner archivieren möchten. Ersetzen Sie einfach my_folder durch ./, und es ändert sein Ziel auf alles im aktuellen Ordner.
zip -r archive.zip ./
Darüber hinaus können Sie dies zusammen mit dem -u-Flag verwenden, um Ordner und deren Inhalte in eine vorhandene ZIP-Datei einzufügen.
zip -r -u archive.zip another_folder
Verwendung des -i-Flags
Das -i-Flag ermöglicht es Ihnen, eine bestimmte Datei auszuwählen, die Sie einschließen möchten, und schließt alles andere innerhalb eines Ordners aus.
zip -r archive.zip my_folder -i my_folder/a_subfolder/file1.txt
Durch die Verwendung von *-Sternchen mit dem -i-Flag können Sie Dateien auswählen, die ähnliche Namen haben, aber mit etwas wie einer Zahl enden könnten. Wenn Sie beispielsweise *.txt eingeben, wird der zip-Befehl alle TXT-Dateien im Ordner einbeziehen.
zip -r archive.zip my_folder -i "*.txt"
Verwendung des -x-Flags
Das -x-Flag ermöglicht es Ihnen, nur bestimmte Dateien auszuschließen, während Sie einen gesamten Ordner zippen.
zip -r archive.zip my_folder -x my_folder/dont_zip.jpg
Außerdem überschreibt das -x-Flag das -i-Flag, wenn es zusammen verwendet wird. Auf diese Weise können Sie beispielsweise zip anweisen, alle anderen Dateien des gleichen Typs einzuschließen, mit Ausnahme der Datei, die Sie nicht zippen möchten.
zip -r archive.zip my_folder -i "*.txt" -x my_folder/dont_zip.txt
So entpacken Sie eine Datei mit dem Linux-Zip-Befehl
Das Entpacken-Programm ist ein Partnerprogramm zum Standard-Zip-Programm. Es extrahiert Dateien aus Ihrem ZIP-Archiv.
Um dieses Programm zu verwenden, müssen Sie nur unzip und den Dateinamen des ZIP-Archivs eingeben.
unzip archive.zip
Mit dem unzip-Befehl entpacken Sie die ZIP-Datei im aktuellen Arbeitsverzeichnis, unabhängig davon, woher die ZIP-Datei stammt.
Um eine Linux-Datei innerhalb einer ZIP-Datei zu extrahieren oder zu entpacken, sodass die anderen unberührt bleiben, können Sie ihren Dateinamen nach dem Teil hinzufügen, in dem Sie das Archiv eingeben.
unzip archive.zip file.txt
So entpacken Sie einen Linux-Ordner mit Zip
Während unzip normalerweise Ordner innerhalb eines ZIP-Archivs extrahiert, kann es ziemlich schwierig sein, es dazu zu bringen, nur bestimmte Ordner zu extrahieren. Aber das bedeutet nicht, dass es unmöglich ist.
unzip archive.zip my_folder/a_subfolder/*
Diese Zeile Code extrahiert alles innerhalb von a_subfolder.
Außerdem erstellt das Entpacken-Programm beim Entpacken eines Ordners einen neuen Ordner im aktuellen Arbeitsverzeichnis und entpackt seine Ordner dort. Wenn ein Ordner mit demselben Namen existiert (oder eine frühere Version des Ordners vorhanden ist), fragt es, ob es in Ordnung ist, die Datei zu ersetzen, die sich derzeit im Ordner befindet.
Häufig gestellte Fragen
Was macht der gzip-Befehl in Linux?
Der Linux gzip-Befehl ist ein Tool, das Sie verwenden können, um Dateien in eine GZ-Datei zu speichern und zu komprimieren.
Ist ZIP besser als TAR?
In gewisser Weise ist ZIP besser als TAR, da ZIP-Dateien ihre Inhalte komprimieren, verschlüsseln und schützen können. TAR-Dateien hingegen sollen Dateien in eine Datei kombinieren, um einen schnelleren Dateitransfer zu ermöglichen, während ZIP-Dateien (obwohl sie für denselben Zweck verwendet werden) mit diesen zusätzlichen Funktionen im Hinterkopf erstellt wurden.
Ist TAR schneller als ZIP?
TAR-Dateien komprimieren oder verschlüsseln ihre Inhalte nicht. Wenn Sie also nach einer schnelleren Möglichkeit suchen, eine große Menge an Dateien in ein einzelnes, leicht übertragbares Archiv zu kombinieren, werden Sie mit TAR im Vergleich zu ZIP einige Vorteile feststellen. Sie werden jedoch feststellen, dass es einfacher ist, eine ZIP-Datei zu übertragen als eine TAR-Datei, da ZIP-Dateien in der Regel viel kleiner sind als TAR-Dateien.
Bildnachweis: Unsplash, Screenshots von Terenz Jomar Dela Cruz