Zippen von Dateien unter Linux die vielen Variationen und wie man sie benutzt

Einige von uns komprimieren seit vielen Jahrzehnten Dateien auf Unix- und Linux-Systemen, um Speicherplatz und Paketdateien für die Archivierung zusammen zu sparen. Trotzdem gibt es einige interessante Variationen beim Zippen, die nicht alle von uns ausprobiert haben. In diesem Beitrag werden wir uns also mit dem Standard-Zippen und -Entpacken sowie einigen anderen interessanten Zipping-Optionen befassen.

[Zwei-Minuten-Linux-Tipps: In diesen 2-Minuten-Video-Tutorials erfahren Sie, wie Sie eine Vielzahl von Linux-Befehlen beherrschen.]

Der grundlegende Zip-Befehl

Schauen wir uns zunächst die Grundlagen an Postleitzahl Befehl. Es verwendet im Wesentlichen den gleichen Komprimierungsalgorithmus wie gzip, Es gibt jedoch einige wichtige Unterschiede. Zum einen wird der Befehl gzip nur zum Komprimieren einer einzelnen Datei verwendet, wobei zip Dateien komprimieren und zu einem Archiv zusammenfügen kann. Zum anderen wird der Befehl gzip "an Ort und Stelle" komprimiert. Mit anderen Worten, es bleibt eine komprimierte Datei - nicht die Originaldatei neben der komprimierten Kopie. Hier ist ein Beispiel für gzip bei der Arbeit:

$ gzip onefile $ ls -l -rw-rw-r-- 1 shs shs 10514 Jan 15 13:13 onefile.gz 

Und hier ist Reißverschluss. Beachten Sie, dass für diesen Befehl ein Name für das komprimierte Archiv angegeben werden muss, in dem gzip einfach den ursprünglichen Dateinamen verwendet und die Erweiterung .gz hinzufügt.

$ zip twofiles.zip Datei * Hinzufügen: Datei1 (entleert 82%) Hinzufügen: Datei2 (entleert 82%) $ ls -l -rw-rw-r-- 1 shs shs 58021 Jan 15 13:25 Datei1 -rw-rw- r-- 1 shs shs 58933 15. Januar 13:34 file2 -rw-rw-r-- 1 shs shs 21289 15. Januar 13:35 twofiles.zip 

Beachten Sie auch, dass sich die Originaldateien noch dort befinden.

Die Menge an Speicherplatz, die gespeichert wird (d. H. Der erhaltene Komprimierungsgrad), hängt vom Inhalt jeder Datei ab. Die Abweichung im folgenden Beispiel ist beträchtlich.

$ zip mybin.zip ~ / bin / * Hinzufügen: bin / 1 (entleert 26%) Hinzufügen: bin / append (entleert 64%) Hinzufügen: bin / BoD_meeting (entleert 18%) Hinzufügen: bin / cpuhog1 (entleert 14%) Hinzufügen: bin / cpuhog2 (0% gespeichert) Hinzufügen: bin / ff (entleert 32%) Hinzufügen: bin / file.0 (entleert 1%) Hinzufügen: bin / loop (entleert 14%) Hinzufügen: bin / notes (entleert 23) %) Hinzufügen: bin / pattern (gespeichert 0%) Hinzufügen: bin / runme (gespeichert 0%) Hinzufügen: bin / tryme (entleert 13%) Hinzufügen: bin / tt (entleert 6%) 

Der Befehl zum Entpacken

Das entpacken Der Befehl stellt den Inhalt einer Zip-Datei wieder her und lässt, wie Sie wahrscheinlich vermuten, die Zip-Datei intakt, während ein ähnlicher Gunzip-Befehl nur die unkomprimierte Datei belässt.

$ unzip twofiles.zip Archiv: twofiles.zip aufblasen: Datei1 aufblasen: Datei2 $ ls -l -rw-rw-r-- 1 shs shs 58021 Jan 15 13:25 file1 -rw-rw-r-- 1 shs shs 58933 15. Januar 13:34 file2 -rw-rw-r-- 1 shs shs 21289 15. Januar 13:35 twofiles.zip 

Der Befehl zipcloak

Das Reißverschluss Der Befehl verschlüsselt eine Zip-Datei und fordert Sie auf, zweimal ein Kennwort einzugeben (um sicherzustellen, dass Sie es nicht "fetten"), und belässt die Datei an Ort und Stelle. Sie können erwarten, dass die Dateigröße ein wenig vom Original abweicht.

$ zipcloak twofiles.zip Passwort eingeben: Passwort überprüfen: verschlüsseln: Datei1 verschlüsseln: Datei2 $ ls -l gesamt 204 -rw-rw-r-- 1 shs shs 58021 Jan 15 13:25 file1 -rw-rw-r-- 1 shs shs 58933 15. Januar 13:34 file2 -rw-rw-r-- 1 shs shs 21313 15. Januar 13:46 twofiles.zip <== slightly larger than unencrypted version 

Beachten Sie, dass sich die Originaldateien noch unverschlüsselt dort befinden.

Der Befehl zipdetails

Das zipdetails Befehl zeigt Ihnen Details - a Menge von Details über eine komprimierte Datei, wahrscheinlich viel mehr, als Sie aufnehmen möchten. Obwohl es sich um eine verschlüsselte Datei handelt, zeigt zipdetails die Dateinamen zusammen mit den Änderungsdaten der Datei, Benutzer- und Gruppeninformationen, Daten zur Dateilänge usw. an. Beachten Sie, dass dies alles "Metadaten" sind. Wir sehen den Inhalt der Dateien nicht.

$ zipdetails twofiles.zip 0000 LOCAL HEADER # 1 04034B50 0004 Zip-Spezifikation extrahieren 14 '2.0' 0005 OS 00 'MS-DOS' 0006 extrahieren Allzweck-Flag 0001 [Bit 0] 1 'Verschlüsselung' [Bits 1-2] 1 'Maximum Komprimierung '0008 Komprimierungsmethode 0008' Entleert '000A Letzte Mod-Zeit 4E2F6B24' Di Jan 15 13:25:08 2019 '000E CRC F1B115BD 0012 Komprimierte Länge 00002904 0016 Unkomprimierte Länge 0000E2A5 001A Dateiname Länge 0005 001C Zusätzliche Länge 001C 001E Zusätzliche ID # 0001 5455 'UT: Erweiterter Zeitstempel' 0025 Länge 0009 0027 Flags '03 Mod Access '0028 Mod Time 5C3E2584' Di Jan 15 13:25:08 2019 '002C Access Time 5C3E27BB' Di Jan 15 13:34:35 2019 '0030 Extra ID # 0002 7875' ux: Unix Extra Typ 3 '0032 Länge 000B 0034 Version 01 0035 UID Größe 04 0036 UID 000003E8 003A GID Größe 04 003B GID 000003E8 003F PAYLOAD 2943 LOCAL HEADER # 2 04034B50 2947 Extract Zip Spec 14' 2.0 '2948 OS 00 extrahieren' MS-DOS '2949 Allzweck-Flag 0001 [Bit 0] 1' Verschlüsselung '[Bits 1-2] 1' Maximale Komprimierung '294B C. Ausdrucksmethode 0008 'Entleert' 294D Letzte Mod-Zeit 4E2F6C56 'Di 15 Jan 13:34:44 2019' 2951 CRC EC214569 2955 Komprimierte Länge 00002913 2959 Unkomprimierte Länge 0000E635 295D Dateiname Länge 0005 295F Zusätzliche Länge 001C 2961 Dateiname ' 0001 5455 'UT: Erweiterter Zeitstempel' 2968 Länge 0009 296A Flags '03 Mod Access '296B Mod Time 5C3E27C4' Di 15 Jan 13:34:44 2019 '296F Access Time 5C3E27BD' Di Jan 15 13:34:37 ​​2019 '2973 Extra ID # 0002 7875 'ux: Unix Extra Typ 3' 2975 Länge 000B 2977 Version 01 2978 UID-Größe 04 2979 UID 000003E8 297D GID-Größe 04 297E GID 000003E8 2982 PAYLOAD 5295 CENTRAL HEADER # 1 02014B50 5299 Erstellt Zip Spec 1E '3.0' 529A Erstellt OS 03 'Unix' 529B Zip-Spezifikation extrahieren 14 '2.0' 529C OS 00 'MS-DOS' 529D extrahieren Allzweck-Flag 0001 [Bit 0] 1 'Verschlüsselung' [Bits 1-2] 1 'Maximale Komprimierung' 529F Komprimierungsmethode 0008 'Deflated' 52A1 Letzte Mod Zeit 4E2F6B24 'Di Jan 15 13:25:08 2019' 52A5 CRC F1B115BD 52A9 Komprimierte Länge 00002904 52AD Uncompr essed Length 0000E2A5 52B1 Dateinamenlänge 0005 52B3 Zusätzliche Länge 0018 52B5 Kommentarlänge 0000 52B7 Datenträgerstart 0000 52B9 Int-Dateiattribute 0001 [Bit 0] 1 Textdaten 52BB Ext-Dateiattribute 81B40000 52BF Lokaler Header-Offset 00000000 52C3 Dateiname 'Datei1' 52C8 0001 5455 'UT: Erweiterter Zeitstempel' 52CA Länge 0005 52CC Flags '03 Mod Access '52CD Mod Zeit 5C3E2584' Di Jan 15 13:25:08 2019 '52D1 Extra ID # 0002 7875' ux: Unix Extra Typ 3 '52D3 Länge 000B 52D5 Version 01 52D6 UID-Größe 04 52D7 UID 000003E8 52DB GID-Größe 04 52DC GID 000003E8 52E0 CENTRAL HEADER # 2 02014B50 52E4 Erstellt Zip Spec 1E '3.0' 52E5 Erstellt OS 03 'Unix' 52E6 Extract Zip Spec 14 '2.0' 52E7 Extract OS 'MS-DOS' 52E8 Allzweck-Flag 0001 [Bit 0] 1 'Verschlüsselung' [Bits 1-2] 1 'Maximale Komprimierung' 52EA-Komprimierungsmethode 0008 'Entleert' 52EC Letzte Mod-Zeit 4E2F6C56 'Di Jan 15 13:34:44 2019 '52F0 CRC EC214569 52F4 Komprimierte Länge 00002913 52F8 Nicht komprimierte Länge 0000E635 52FC Dateiname Länge 0005 52FE Zusätzliche Länge 0018 5300 Kommentarlänge 0000 5302 Festplattenstart 0000 5304 Int-Dateiattribute 0001 [Bit 0] 1 Textdaten 5306 Ext-Dateiattribute 81B40000 530A Lokaler Header-Offset 00002943 530E Dateiname 'Datei2' 5313 Zusätzliche ID # 0001 5455 'UT: Erweiterter Zeitstempel' 5315 Länge 0005 5317 Flags '03 Mod Access '5318 Mod Time 5C3E27C4' Di Jan 15 13:34:44 2019 '531C Extra ID # 0002 7875' ux: Unix Extra Typ 3 '531E Länge 000B 5320 Version 01 5321 UID Größe 04 5322 UID 000003E8 5326 GID-Größe 04 5327 GID 000003E8 532B END CENTRAL HEADER 06054B50 532F Nummer dieser Festplatte 0000 5331 Central Dir Disk-Nr. 0000 5333 Einträge in dieser Festplatte 0002 5335 Gesamteinträge 0002 5337 Größe der Central Dir 00000096 533B Offset zu Central Dir 00005295 53F Länge 0000 Fertig 

Der Befehl zipgrep

Das zipgrep Der Befehl verwendet eine Grep-Funktion, um bestimmte Inhalte in Ihren komprimierten Dateien zu finden. Wenn die Datei verschlüsselt ist, müssen Sie für jede zu untersuchende Datei das für die Verschlüsselung angegebene Kennwort eingeben. Wenn Sie nur den Inhalt einer einzelnen Datei aus dem Archiv überprüfen möchten, fügen Sie ihren Namen am Ende des Befehls zipgrep hinzu, wie unten gezeigt.

$ zipgrep Hazard twofiles.zip file1 [twofiles.zip] file1 Passwort: Bestimmte Pestizide sollten verboten werden, da sie umweltgefährdend sind. 

Der Befehl zipinfo

Das zipinfo Der Befehl enthält Informationen zum Inhalt einer komprimierten Datei, unabhängig davon, ob diese verschlüsselt ist oder nicht. Dies umfasst die Dateinamen, Größen, Daten und Berechtigungen.

$ zipinfo twofiles.zip Archiv: twofiles.zip Zip-Dateigröße: 21313 Byte, Anzahl der Einträge: 2 -rw-rw-r-- 3,0 unx 58021 Tx defN 19-Jan-15 13:25 file1 -rw-rw-r - 3.0 unx 58933 Tx defN 19-Jan-15 13:34 file2 2 Dateien, 116954 Bytes unkomprimiert, 20991 Bytes komprimiert: 82,1% 

Der Zipnote-Befehl

Das Zipnote Mit dem Befehl können Kommentare aus Zip-Archiven extrahiert oder hinzugefügt werden. Um Kommentare anzuzeigen, stellen Sie dem Namen des Archivs einfach den Befehl voran. Wenn zuvor noch keine Kommentare hinzugefügt wurden, wird Folgendes angezeigt:

$ zipnote twofiles.zip @ file1 @ (Kommentar über dieser Zeile) @ file2 @ (Kommentar über dieser Zeile) @ (Kommentar zur Zip-Datei unter dieser Zeile) 

Wenn Sie Kommentare hinzufügen möchten, schreiben Sie die Ausgabe des Befehls zipnote in eine Datei:

$ zipnote twofiles.zip> Kommentare 

Bearbeiten Sie als Nächstes die gerade erstellte Datei und fügen Sie Ihre Kommentare über dem ein (Kommentar über dieser Zeile) Linien. Fügen Sie dann die Kommentare mit einem Zipnote-Befehl wie dem folgenden hinzu:

$ zipnote -w twofiles.zip < comments 

Der Befehl zipsplit

Das Reißverschluss Mit dem Befehl können Sie ein Zip-Archiv in mehrere Zip-Archive aufteilen, wenn die Originaldatei zu groß ist - möglicherweise, weil Sie versuchen, eine der Dateien einem kleinen USB-Stick hinzuzufügen. Der einfachste Weg, dies zu tun, scheint darin zu bestehen, die maximale Größe für jeden der komprimierten Dateiteile anzugeben. Diese Größe muss groß genug sein, um die größte enthaltene Datei aufzunehmen.

$ zipsplit -n 12000 twofiles.zip 2 Zip-Dateien werden erstellt (100% Effizienz). Erstellen: twofile1.zip Erstellen: twofile2.zip $ ls twofile * .zip -rw-rw-r-- 1 shs shs 10697 Jan 15 14 : 52 twofile1.zip -rw-rw-r-- 1 shs shs 10702 Jan 15 14:52 twofile2.zip -rw-rw-r-- 1 shs shs 21377 Jan 15 14:27 twofiles.zip 

Beachten Sie, wie die extrahierten Dateien nacheinander "twofile1" und "twofile2" heißen..

Einpacken

Das Postleitzahl Der Befehl bietet zusammen mit einigen seiner Zipping-Landsleute viel Kontrolle darüber, wie Sie komprimierte Dateiarchive generieren und damit arbeiten.

[Siehe auch: Wertvolle Tipps und Tricks zur Fehlerbehebung bei Linux] Treten Sie den Network World-Communitys auf Facebook und LinkedIn bei, um Kommentare zu Themen abzugeben, die im Vordergrund stehen.