So komprimieren oder entpacken Sie Dateien vom Linux-Terminal
- Dave McKay
@TheGurkha
- Aktualisiert Mai 28, 2019, 5:15pm EDT
ZIP-Dateien sind ein universelles Archiv, das häufig auf Windows-, macOS- und sogar Linux-Systemen verwendet wird. Sie können ein Zip-Archiv erstellen oder Dateien mit einigen gängigen Linux-Terminalbefehlen entpacken.
Das ZIP-komprimierte Archivdateiformat
Dank der Dominanz des ZIP-Formats im Windows-Bereich sind ZIP-Dateien wahrscheinlich die weltweit häufigste Form komprimierter Archive.
Während .Teer.gz- und tar.bz2-Dateien sind unter Linux üblich, Windows-Benutzer senden Ihnen 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.
RELATED: So extrahieren Sie Dateien aus einem .Teer.gz oder .Teer.bz2-Datei unter Linux
zip, unzip und andere Dienstprogramme
Möglicherweise wissen Sie bereits, dass Linux- und Unix-ähnliche Betriebssysteme wie macOS über Tools verfügen, mit denen Sie ZIP-Dateien erstellen und daraus extrahieren können, die als zip
und unzip
bezeichnet werden. Es gibt jedoch eine ganze Familie verwandter Dienstprogramme wie zipcloak
zipdetails
zipsplit
und zipinfo
.
Wir haben einige Linux-Distributionen überprüft, um zu sehen, ob sie diese Dienstprogramme in der Standardinstallation enthalten. Alle Dienstprogramme waren in Ubuntu 19.04, 18.10 und 18.04 vorhanden. Sie waren auch in Manjaro 18.04. Fedora 29 enthielt zip
und unzip
, aber keines der anderen Dienstprogramme, und das war auch bei CentOS der Fall.
Um die fehlenden Elemente auf Fedora 29 zu installieren, 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
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 Befehl zip
Um eine ZIP-Datei zu erstellen, müssen Sie zip
den Namen der Archivdatei und die darin enthaltenen Dateien angeben. Sie müssen das “ nicht hinzufügen.zip“ Erweiterung auf den Archivnamen, aber es schadet nicht, wenn Sie tun.
Um eine Datei mit dem Namen source_code.zip
zu erstellen, die alle C-Quellcodedateien und Header-Dateien im aktuellen Verzeichnis enthält, verwenden Sie diesen Befehl:
zip source_code *.c *.h
Jede Datei wird so aufgelistet, wie sie hinzugefügt wurde. Der Name der Datei und der Komprimierungsgrad, der für diese Datei erreicht wurde, werden angezeigt.
Wenn Sie sich das neue ZIP-Archiv ansehen, können Sie sehen, dass die „.die Dateierweiterung „zip“ wurde automatisch von zip
hinzugefügt.
ls -l source_code.zip
Wenn Sie die Ausgabe von zip
beim Erstellen der ZIP-Datei nicht sehen möchten, verwenden Sie die Option -q
(leise).
zip -q source_code *.c *.h
Verzeichnisse in ZIP-Dateien einschließen
Um Unterverzeichnisse in die ZIP-Datei aufzunehmen, verwenden Sie die Option -r
(rekursiv) und geben 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 einzuschließen.
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 extrahiert, werden alle Dateien ordentlich in einem Verzeichnis auf ihrem Computer abgelegt.
Im folgenden Befehl archivieren wir das work
Verzeichnis und alle Unterverzeichnisse. Beachten Sie, dass dieser Befehl aus dem übergeordneten Verzeichnis des Ordners work
ausgegeben wird.
zip -r -q source_code work/
Einstellen der Komprimierungsstufe
Sie können festlegen, wie stark die Komprimierung auf die Dateien angewendet wird, wenn sie dem ZIP-Archiv hinzugefügt werden. Der Bereich reicht von 0 bis 9, wobei 0 überhaupt keine Komprimierung ist. Je höher die Komprimierung, desto länger dauert die Erstellung der ZIP-Datei. Bei mittelgroßen ZIP-Dateien ist der Zeitunterschied keine signifikante Strafe. Aber dann, für bescheiden große ZIP-Dateien, ist die Standardkomprimierung (Stufe 6) wahrscheinlich sowieso gut genug.
Um zip
um eine bestimmte Komprimierungsstufe zu verwenden, übergeben Sie die Nummer als Option in der Befehlszeile mit einem „-“ wie folgt:
zip -0 -r -q source_code work/
Die Standardkomprimierungsstufe ist 6. Es ist nicht erforderlich, die Option -6
, 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) 400 KB. Der Unterschied zwischen der Standardkomprimierung und der höchsten Komprimierungsstufe (Stufe 9) beträgt nur 4 KB.
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 zu einer lohnenden Platzersparnis führen.
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) Option 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 Befehl entpacken
Um die Dateien aus einer ZIP-Datei zu extrahieren, verwenden Sie den Befehl entpacken und geben Sie den Namen der ZIP-Datei an. Beachten Sie, dass Sie die „.zip“ Erweiterung.
unzip source_code.zip
Wenn die Dateien extrahiert werden, werden sie im Terminalfenster aufgelistet.
ZIP-Dateien enthalten keine Details zum Dateibesitz. Für alle extrahierten Dateien ist der Eigentümer auf den Benutzer festgelegt, der sie extrahiert.
Genau wie zip
hat unzip
eine -q
(leise) Option, so dass Sie die Dateiliste nicht sehen müssen, wenn die Dateien extrahiert werden.
unzip -q source_code.zip
Extrahieren von Dateien in ein Zielverzeichnis
Um die Dateien in einem bestimmten Verzeichnis extrahieren zu lassen, verwenden Sie die Option -d
(Verzeichnis) und geben Sie den Pfad zum sie möchten, dass das Archiv extrahiert wird.
unzip -q source_code.zip -d ./development
Extrahieren Sie passwortgeschützte ZIP-Dateien
Wenn eine ZIP-Datei mit einem Kennwort erstellt wurde, werden Sie von unzip
nach dem Kennwort gefragt. Wenn Sie nicht das richtige Passwort angeben, unzip
werden die Dateien nicht extrahiert.
unzip -q source_code.zip
Wenn es Ihnen egal ist, dass Ihr Passwort von anderen gesehen oder in Ihrem Befehlsverlauf gespeichert wird, können Sie das Passwort in der Befehlszeile mit dem -P
(Passwort) Option. (Sie müssen ein Großbuchstaben „P.“)
unzip -P fifty.treacle.cutlass -q source_code.zip
Dateien ausschließen
Wenn Sie eine bestimmte Datei oder Dateigruppe nicht extrahieren möchten, verwenden Sie die Option -x
(ausschließen). In diesem Beispiel möchten wir alle Dateien mit Ausnahme derjenigen extrahieren, die mit a “ enden.h“ Erweiterung.
unzip -q source_code.zip -x *.h
Dateien überschreiben
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 im selben Verzeichnis wie zuvor zu extrahieren, werden Sie unzip
aufgefordert, eine Entscheidung zum Überschreiben der Dateien zu treffen. Es wird eine der folgenden Antworten erwarten.
Abgesehen von der r
(rename) Antwort, sind diese Antworten case sensitive.
- y: Ja, überschreibe diese Datei
- n: Nein, überschreibe diese Datei nicht
- A: Alle, überschreibe alle Dateien
- N: Keine, überschreibe keine der Dateien
- r: Umbenennen, entpacke diese Datei, aber gib ihr einen neuen Namen. Sie werden zur Eingabe eines neuen Namens aufgefordert.
Um unzip
zum Überschreiben vorhandener Dateien zu zwingen, verwenden Sie die Option -o
(Überschreiben).
unzip -o -q source_code.zip
Der effizienteste Weg, die fehlenden Dateien zu ersetzen, wäre, unzip
nur Dateien im Archiv zu extrahieren, die sich nicht im Zielverzeichnis befinden. Verwenden Sie dazu die Option -n
(niemals überschreiben).
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 Option -l
(Listenarchiv) tun. Es wird durch less
geleitet, um die Ausgabe verwaltbar zu machen.
unzip -l source_code.zip | less
Die Ausgabe zeigt die Verzeichnisse und Dateien in der ZIP-Datei, ihre Länge sowie die Uhrzeit und das Datum, an dem sie dem Archiv hinzugefügt wurden. Drücken Sie „q“, um less
zu beenden.
Es gibt andere Möglichkeiten, in eine ZIP-Datei zu schauen, die verschiedene Arten von Informationen liefert, wie wir sehen werden.
Fügen Sie ein Passwort mit dem Befehl zipcloak hinzu
Was können Sie tun, wenn Sie eine ZIP-Datei erstellt, aber vergessen haben, ein Passwort hinzuzufügen? Mit dem Befehl zipcloak
können Sie der ZIP-Datei schnell ein Kennwort hinzufügen. Übergeben Sie den Namen der ZIP-Datei in der Befehlszeile. Sie werden zur Eingabe eines Passworts aufgefordert. Sie müssen das Passwort überprüfen, indem Sie es ein zweites Mal eingeben.
zipcloak source_code.zip
Dateidetails mit dem Befehl zipdetails anzeigen
Der Befehl zipdetails
zeigt Ihnen viele Informationen zur ZIP-Datei an. Die einzige vernünftige Möglichkeit, mit der Menge an Ausgabe umzugehen, die dieser Befehl geben kann, besteht darin, ihn über less
.
zipdetails source_code.zip | less
Beachten Sie, dass die Informationen Dateinamen enthalten, auch wenn die ZIP-Datei kennwortgeschützt ist. Diese Art von Informationen wird in der ZIP-Datei als Metadaten gespeichert und ist nicht Teil der verschlüsselten Daten.
Suche innerhalb der Datei Mit dem Befehl zipgrep
Mit dem Befehl zipgrep
können Sie innerhalb der Dateien in einer ZIP-Datei suchen. Im folgenden Beispiel möchten wir wissen, welche Dateien in der ZIP-Datei den Text „keyval.h“ in ihnen.
zipgrep keyval.h source_code.zip
Wir können sehen, dass die Dateien slang.c
und getval.c
die Zeichenfolge „keyval.h“.Wir können auch sehen, dass sich zwei Kopien jeder dieser Dateien in verschiedenen Verzeichnissen in der ZIP-Datei befinden.
Informationen mit dem Befehl zipinfo anzeigen
Der Befehl zipinfo
bietet Ihnen eine weitere Möglichkeit, in eine ZIP-Datei zu schauen. Wie zuvor leiten wir die Ausgabe über less
.
zipinfo source_code.zip | less
Von links nach rechts zeigt die Ausgabe:
- Die Dateiberechtigungen
- Die Version des zum Erstellen der ZIP-Datei verwendeten Tools
- Die ursprüngliche Dateigröße
- Ein Dateideskriptor (unten beschrieben)
- Die Methode der Komprimierung (in diesem Fall Deflation)
- Der Daten- und Zeitstempel
- Der Name der Datei und eines beliebigen Verzeichnisses
Der Dateideskriptor besteht aus zwei Charakteren. Das erste Zeichen ist ein „t“ oder ein „b“, um eine Text- oder Binärdatei anzugeben. Wenn es sich um einen Großbuchstaben handelt, wird die Datei verschlüsselt. Das zweite Zeichen kann eines von vier Zeichen sein. Dieses Zeichen gibt an, welche Art von Metadaten für diese Datei enthalten sind: keine, ein erweiterter lokaler Header, ein „zusätzliches Feld“ oder beides.
- -: Wenn keiner 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 Befehl zipsplit
Wenn Sie die ZIP-Datei an eine andere Person senden müssen, aber Größenbeschränkungen oder Probleme bei der Übertragung der Datei bestehen, können Sie die zipsplit
Befehl, um die ursprüngliche ZIP-Datei in eine Reihe kleinerer ZIP-Dateien aufzuteilen.
Mit der Option -n
(size) können Sie eine maximale Größe für jede der neuen ZIP-Dateien festlegen. In diesem Beispiel teilen wir die Datei source_code.zip
. Wir möchten nicht, dass eine der neuen ZIP-Dateien größer als 100 KB (102400 Bytes) 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, die empfangenen ZIP-Dateien entpacken und verschiedene andere Vorgänge ausführen, ohne das Linux-Terminal zu verlassen.
Dave McKay benutzte zuerst Computer, als gelochtes Papierband in Mode war, und er programmiert seitdem. Nach über 30 Jahren in der IT-Branche ist er heute Vollzeit-Technologiejournalist. Im Laufe seiner Karriere war er als freiberuflicher Programmierer, Leiter eines internationalen Softwareentwicklungsteams, Projektleiter für IT-Services und zuletzt als Datenschutzbeauftragter tätig. Dave ist ein Linux Evangelist und Open Source Advocate.Vollständige Biografie lesen “
Leave a Reply