Befehl "compress"

Zweck

Komprimiert Daten.

Syntax

compress-c ] [ -C ] [  -d ] [  -F ] [  -f ] [  -n ] [  -q ] [  -v ] [ -V ] [  -b Bits ] [ File ... ]

Beschreibung

Der Befehl compress komprimiert Daten mithilfe der adaptiven Lempel-Ziv-Codierung, um die Größe von Dateien zu reduzieren. Jede Originaldatei, die mit dem Parameter Datei angegeben wird, wird nach Möglichkeit durch eine komprimierte Datei ersetzt, an deren Namen ein .Z angehängt wird. Wenn der aufrufende Prozess die entsprechende Berechtigungen besitzt, übernimmt die komprimierte Datei Eigner, Modi und Änderungszeit der Originaldatei. Wenn der Pfad der angegebenen Datei größer als 1023 Byte ist, funktioniert der Befehl nicht. Wenn keine Dateien angegeben werden, wird die Standardeingabe in der Standardausgabe komprimiert. Falls sich die Größe der Datei durch das Komprimieren nicht verringert, wird eine Nachricht in die Standardfehlerausgabe geschrieben und die Originaldatei wird nicht ersetzt.

Hinweis: Dateien müssen über die korrekten Berechtigungen verfügen, um ersetzt werden zu können.

Der Komprimierungsgrad ist von der Größe der Eingabe, der mit der Variablen Bits angegebenen Anzahl der Bit pro Code und der Verteilung der allgemeinen Teilzeichenfolgen abhängig. Gewöhnlich wird Quellcode oder englischer Text um 50 bis 60 % verringert. Die Komprimierung des Befehls compress ist kompakter und benötigt weniger Zeit für die Berechnung als die Komprimierung, die durch die Huffman-Codierung (wie im Befehl pack verwendet) oder die adaptive Huffman-Codierung erreicht wird.

Flags

Tabelle 1 Markierungen
Element Beschreibung
-b Bits Gibt die maximale Bitanzahl für die Ersetzung gemeinsamer Teilzeichenfolgen in der Datei an. Der Wert der Variablen Bits muss im Bereich von 9 Bit bis 16 Bit liegen. Der Standardwert der Variablen Bits ist 16 Bit. Bei der Komprimierung von Daten verwendet der Algorithmus zuerst alle 9-Bit-Codes (257 bis 512), um so viele Teilzeichenfolgen wie möglich zu ersetzen. Anschließend werden alle 10-Bit-Codes usw. verwendet, bis der mit dem Flag -b angegebene Grenzwert erreicht ist.
-c Schreibt die Ausgabe in die Standardausgabe. Es werden keine Dateien geändert.
-C Erzeugt eine Ausgabe, die mit Berkeley Software Distribution (BSD) Revision 2.0 kompatibel ist.
-d Bewirkt, dass der Befehl compress genauso wie der Befehl uncompress funktioniert.
-f oder -F Erzwingt die Komprimierung. Die Flags -f und -F sind gegenseitig austauschbar. Überschreibt die Datei File.Z , wenn sie bereits vorhanden ist.

Nach dem Erreichen des Werts der Variablen Bits überprüft der Befehl compress das Komprimierungsverhältnis in regelmäßigen Abständen. Wenn das Komprimierungsverhältnis größer wird, verwendet der Befehl compress weiterhin das vorhandene Codierungslexikon. Wenn das Komprimierungsverhältnis kleiner wird, verwirft der Befehl compress die Tabelle mit den Teilzeichenfolgen und erstellt sie neu. Die erneute Erstellung der Tabelle ermöglicht dem Algorithmus die Anpassung an den nächsten Dateiblock. Wenn die Datei .Z bereits vorhanden ist, das Flag -f nicht angegeben ist und der Prozess nicht im Hintergrund ausgeführt wird, wird geprüft, ob die vorhandene Datei .Z überschrieben werden soll.

-n Lässt den Header der komprimierten Datei in der komprimierten Datei weg.
Anmerkung: Bei Verwendung dieser Option muss auch das Flag -n verwendet werden, um die Datei mit dem Befehl uncompress zu dekomprimieren.
-q Unterdrückt die Anzeige von Komprimierungsstatistiken, die vom Flag -v generiert wurden. Wenn mehrere Flags -v und -q in derselben Befehlszeile angegeben werden, steuert das zuletzt angegebene die Anzeige der Statistiken.
-v Gibt den den Prozentsatz der Komprimierung aus.
-V Schreibt die aktuelle Version und die Kompilierungsoptionen in die Standardfehlerausgabe.

Parameter

Tabelle 2. Parameter
Element Beschreibung
Datei Gibt die zu komprimierende Datei an.

Rückgabewerte

Wenn ein Fehler auftritt, ist der Exitstatus 1. Wenn der Befehl compress beendet wird, ohne eine Datei zu komprimieren, wird er mit dem Status 2 beendet. Andernfalls wird der Befehl compress mit dem Status 0 beendet.

Der Befehl compress erkennt einen Fehler und wird mit dem Status 1 beendet, wenn eines der folgenden Ereignisse eintritt:

  • Eine Eingabedatei ist keine reguläre Datei.
  • Ein Eingabedateiname ist zu lang, um die Erweiterung .Z anzuhängen.
  • Eine Eingabedatei kann nicht gelesen oder eine Ausgabedatei kann nicht geschrieben werden.

Exitstatus

Tabelle 3. EXITSTATUS
Element Beschreibung
0 Erfolgreiche Ausführung.
1 Es ist ein Fehler aufgetreten.
2. Mindestens eine Datei wurde nicht komprimiert, weil sie möglicherweise größer wurde (und das Flag -f nicht angegeben wurde).
> 2 Es ist ein Fehler aufgetreten.

Sicherheit

Hinweis für Benutzer von RBAC und Trusted AIX : Dieser Befehl kann privilegierte Operationen ausführen. Privilegierte Operationen können nur von privilegierten Benutzern ausgeführt werden. Weitere Informationen zu Berechtigungen und Privilegien finden Sie unter "Privileged Command Database" in der Veröffentlichung Security. Eine Liste der Berechtigungen und Autorisierungen, die diesem Befehl zugeordnet sind, finden Sie in den Beschreibungen des Befehls lssecattr und des Unterbefehls getcmdattr.

Beispiel

Geben Sie den folgenden Befehl ein, um die Datei foo zu komprimieren und den Prozentsatz der Komprimierung in die Standardfehlerausgabe zu schreiben:

compress -v foo

Die Datei foo wird komprimiert und in foo.Z umbenannt.