Implementierungsprinzip und Codebeispiele für die Komprimierungsdatei des Linux-Befehls gzip

Implementierungsprinzip und Codebeispiele für die Komprimierungsdatei des Linux-Befehls gzip

gzip ist ein Befehl, der in Linux-Systemen häufig zum Komprimieren und Dekomprimieren von Dateien verwendet wird. Die mit diesem Befehl komprimierte neue Datei ist normalerweise mit der Erweiterung „.gz“ gekennzeichnet.

Ich möchte noch einmal betonen, dass der Befehl gzip nur zum Komprimieren von Dateien und nicht von Verzeichnissen verwendet werden kann. Selbst wenn ein Verzeichnis angegeben wird, können nur alle Dateien im Verzeichnis komprimiert werden.

Das grundlegende Format des gzip-Befehls ist wie folgt:

[root@localhost ~]# gzip [Optionen] Quelldatei

Die Quelldatei im Befehl bezieht sich beim Ausführen eines Komprimierungsvorgangs auf eine allgemeine Datei und beim Ausführen eines Dekomprimierungsvorgangs auf eine komprimierte Datei. Die häufig verwendeten Optionen dieses Befehls und ihre Bedeutungen sind in Tabelle 1 aufgeführt.

Tabelle 1 Allgemeine Optionen und Bedeutungen des gzip-Befehls

Optionen Bedeutung
-C Drucken Sie die komprimierten Daten auf die Standardausgabe und behalten Sie die Originaldatei bei.
-D Dekomprimieren Sie die komprimierte Datei.
-R Komprimiert rekursiv alle Dateien im angegebenen Verzeichnis und seinen Unterverzeichnissen.
-v Für jede komprimierte und dekomprimierte Datei werden der entsprechende Dateiname und das Komprimierungsverhältnis angezeigt.
-l Für jede komprimierte Datei werden die folgenden Felder angezeigt:
  • Die Größe der komprimierten Datei;
  • Die Größe der unkomprimierten Datei;
  • Kompressionsverhältnis;
  • Der Name der unkomprimierten Datei.
-Nummer Wird verwendet, um die Komprimierungsstufe festzulegen, wobei -1 die niedrigste Komprimierungsstufe und das schlechteste Komprimierungsverhältnis ist, -9 das höchste Komprimierungsverhältnis. Das Standardkomprimierungsverhältnis beträgt -6.

【Beispiel 1】Grundlegende Komprimierung

Der Komprimierungsbefehl gzip ist sehr einfach. Sie müssen nicht einmal den Namen des komprimierten Pakets angeben. Sie müssen nur den Namen der Quelldatei angeben. Versuchen wir es:

[root@localhost ~]# gzip install.log
#Install.log-Datei komprimieren
[root@localhost ~]# ls
anaconda-ks.cfg install.log.gz install.log.syslog
#Die komprimierte Datei wird generiert, aber die Quelldatei verschwindet ebenfalls

【Beispiel 2】 Quelldateikomprimierung beibehalten

Wenn Sie eine Datei mit dem Befehl gzip komprimieren, verschwindet die Quelldatei und es entsteht eine komprimierte Datei. Zu diesem Zeitpunkt leiden manche Menschen an einer Zwangsstörung und fragen den Autor: Ist es möglich, das Verschwinden der Quelldatei beim Komprimieren der Datei zu verhindern? Nun, es ist möglich, aber es ist umständlich.

[root@localhost ~]# gzip -c anaconda-ks.cfg >anaconda-ks.cfg.gz
#Verwenden Sie die Option -c, geben Sie die komprimierten Daten jedoch nicht auf dem Bildschirm aus, sondern leiten Sie sie in die komprimierte Datei um, sodass die Datei komprimiert werden kann, ohne die Quelldatei zu löschen
[root@localhost ~]# ls
anaconda-ks.cfg anaconda-ks.cfg.gz install.log.gz install.log.syslog
#Sie können sehen, dass sowohl die komprimierte Datei als auch die Quelldatei vorhanden sind

【Beispiel 3】 Verzeichnis komprimieren

Wir könnten davon ausgehen, dass der Befehl gzip Verzeichnisse komprimieren kann. Versuchen wir es:

[root@localhost ~]# mkdir test
[root@localhost ~]# Touch-Test/Test1
[root@localhost ~]# Touch-Test/Test2
[root@localhost ~]# touch test/test3 #Erstellen Sie ein Testverzeichnis und erstellen Sie darin mehrere Testdateien
[root@localhost ~]# gzip -r test/
#Komprimieren Sie das Verzeichnis und es wird kein Fehler gemeldet
[root@localhost ~]# ls
anaconda-ks.cfg anaconda-ks.cfg.gz install.log.gz install.log.syslog Test
#Aber ich habe festgestellt, dass das Testverzeichnis noch existiert und nicht in eine komprimierte Datei konvertiert wurde
[root@localhost ~]# ls test/
test1.gz test2.gz test3.gz
#Der ursprüngliche gzip-Befehl packt das Verzeichnis nicht, sondern komprimiert alle Unterdateien im Verzeichnis separat

Unter Linux werden Verpackung und Komprimierung separat behandelt. Der Befehl gzip kann nur komprimieren, aber nicht verpacken. Daher gibt es kein Paketverzeichnis und nur die Dateien im Verzeichnis werden komprimiert.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • So zeigen Sie historische Befehle in Linux an und führen sie aus
  • Bringen Sie Ihnen bei, den Linux-Befehlszeilenverlauf auszublenden
  • Aufzeichnungsfunktion für Shell-Verlaufsbefehle in Linux
  • So kommunizieren Sie mit anderen Benutzern über die Linux-Befehlszeile
  • In Linux gibt es keinen Make-Befehl (make: *** Kein Ziel angegeben und keine Makefile- oder Make-Befehlsinstallationsmethode gefunden)
  • Verwendung des Linux-Telnet-Befehls
  • Detaillierte Erklärung zum Anpassen des Linux-Befehlsverlaufs

<<:  Wie implementiert MySQL ACID-Transaktionen?

>>:  Kapselungsmethode der Vue-Breadcrumbs-Komponente

Artikel empfehlen

Implementierung der Bereitstellung eines privaten Docker-Warehouse-Registrars

Da immer mehr Docker-Images verwendet werden, mus...

Detaillierte Analyse des Event-Bubbling-Mechanismus in JavaScript

Was ist Blubbern? Es gibt drei Phasen im DOM-Erei...

18 allgemeine Befehle in der MySQL-Befehlszeile

Bei der täglichen Wartung und Verwaltung von Webs...

Die Bilder in HTML werden direkt durch base64-kodierte Strings ersetzt

Kürzlich stieß ich auf eine Webseite, die zwar Bil...

Mybatis-Statistiken zur Ausführungszeit jeder SQL-Anweisung

Hintergrund In letzter Zeit werde ich in Intervie...

jQuery implementiert die Funktion zum Ziehen von Bildern mit der Maus

In diesem Beispiel wird jQuery verwendet, um eine...

Grundlegendes Tutorial zur Bedienung von Dateien und Berechtigungen in CentOS

Vorwort Bevor wir beginnen, sollten wir uns kurz ...

Detaillierte Erklärung des JavaScript-Fortschrittsmanagements

Inhaltsverzeichnis Vorwort Frage Prinzip prüfen V...

So leiten Sie über den Nginx-Lastausgleich zu https um

Kopieren Sie das Zertifikat und den Schlüssel im ...