Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

compress - Dateien komprimieren

&pagelevel(4)&pagelevel

(compress files)


compress komprimiert Dateien mittels adaptiver Lempel-Ziv-Codierung: Zeichenketten, die sich im Text wiederholen, werden durch eindeutige Codes von 9 bis maximal 16 bit Länge abgekürzt.

Eigentümer, Zugriffsrechte sowie Zugriffs- oder Änderungsdatum der angegebenen Dateienwerden nicht verändert, wenn der aufrufende Prozess die passenden Privilegien hat.

Jede angegebene Datei wird ersetzt durch eine Datei gleichen Namens mit dem Suffix .Z .

Der Umfang der Komprimierung hängt ab von der Größe der Eingabedatei, vom Wert für bits (siehe unten, Option -b) sowie von der Verteilung gleicher Zeichenketten. Dateien, die nur Text oder Quellcode enthalten, werden in der Regel um 50-60% komprimiert. Die verwendete Lempel-Ziv-Codierung erreicht im allgemeinen eine bessere Komprimierung als die Codierung nach Huffman und verbraucht auch weniger Rechenzeit.

Eine Komprimierung wird nicht durchgeführt, wenn

  • die zu komprimierende Datei keine einfache Datei ist

  • auf die zu komprimierende Datei Verweise bestehen

  • die zu komprimierende Datei bereits ein .Z-Suffix hat

  • die anzulegende .Z-Datei bereits existiert und compress im Hintergrund abläuft

  • die Komprimierung keine Platzersparnis erwarten lässt

Mit uncompress können Sie eine komprimierten Datei wieder dekomprimieren.

Mit zcat können Sie komprimierte Dateien im Originalzustand auf die Standard-Ausgabe ausgeben. Die komprimierte Datei wird dabei nicht verändert.

Syntax


Format 1: compress[ -fv][ -b bits][ datei ...]
Format 2: compress[ -cfv][ -b bits][ datei]

Keine Option angegeben:

Die angegebenen Dateien werden komprimiert, wenn dadurch Speicherplatz gespart werden kann.

-c

Die Ausgabe von compress wird nur auf die Standard-Ausgabe geschrieben. Es wird keine Datei geändert oder angelegt. Bei -c darf nur eine Datei angegeben werden.

-f

(f - force)

Die Komprimierung wird erzwungen, auch wenn dadurch kein Speicherplatz gespart wird oder die anzulegende .Z-Datei bereits existiert. Diese Datei wird überschrieben.

-f nicht angegeben:
compress fragt nach, ob eine existierende .Z-Datei überschrieben werden soll oder nicht. Diese Nachfrage erfolgt jedoch nicht, wenn compress im Hintergrund abläuft.

-v

(v - verbose)

Die prozentuale Platzersparnis für jede komprimierte Datei wird angezeigt:
datei Compression: xx.xx% –– replaced with datei .Z

-b bits

Die maximale Größe für den Abkürzungs-Code gleicher Zeichenketten wird auf bits Bits festgelegt. Der Wert für bits muss zwischen 9 und 16 liegen. Eine Herabsetzung des Wertes bewirkt, dass die Dateien weniger komprimiert werden.
Der Parameter bits wird verschlüsselt in der komprimierten Datei abgelegt, zusammen mit einem Kennzeichen (magic number), das sicherstellt, dass eine mehrfache Komprimierung nicht möglich ist.

-b nicht angegeben:
Für bits wird 16 angenommen.


Achtung!
Komprimierte Dateien sind nur kompatibel zwischen Maschinen mit großem Prozessdatenbereich. Für Datenübertragungen auf Architekturen mit kleinerem Prozessdatenbereich (64 Kbyte oder weniger) sollte für die Komprimierung die Option -b 12 angegeben werden.


datei

Name der Datei, die komprimiert werden soll. Sie können mehrere Dateien angeben. Wenn Sie für eine der Dateien einen Bindestrich – angeben, liest compress an dieser Stelle von der Standard-Eingabe.
datei darf kein Dateiverzeichnis sein, und es dürfen keine Verweise auf datei bestehen.

Die komprimierte Datei erhält den Namen datei.Z, datei wird nach erfolgreicher Komprimierung gelöscht. datei.Z hat dieselben Zugriffsrechte, dasselbe Zugriffs- bzw. Änderungsdatum wie datei. Die Länge des Namens von datei ist abhängig vom verwendeten Dateisystem. Die maximal zulässige Länge für datei errechnet sich aus der maximal im verwendeten Dateisystem zulässigen Dateinamenslänge abzüglich zwei Zeichen. Damit ist die Namenserweiterung auf datei.Z noch möglich. Ist der Name länger, so wird datei nicht komprimiert.

datei nicht angegeben oder für datei – angegeben:
Die Daten der Standard-Eingabe werden in komprimierter Form auf die Standard-Ausgabe geschrieben.

Endestatus

0Komprimierung erfolgreich
1Fehler
2Ein oder mehrere Dateien wurden nicht komprimiert, da die Komprimierung die Datei vergrößert hätte.
>2Fehler

Fehler

datei: filename too long to tack on .Z

Der Name der zu komprimierenden Datei ist zu lang. compress komprimiert nicht.


datei –– not a regular file: unchanged
Die angegebene Datei ist keine einfache Datei. compress komprimiert nicht.


datei: –– has xx other links: unchanged
Auf die angegebene Datei bestehen xx Verweise. compress komprimiert nicht.


datei unchanged
Es kann keine Einsparung durch die Komprimierung erzielt werden. compress komprimiert nicht. Wollen Sie dennoch komprimieren, so geben Sie die Option -f an.

Internationale Umgebung

Die folgenden Umgebungsvariablen beeinflussen die Ausführung des Kommandos compress:

LANG

Gibt einen Standardwert für die Variablen für die internationale Umgebung an, die nicht gesetzt oder Null sind. Ist LANG nicht gesetzt oder Null, wird der entsprechende Standardwert der internationalen Umgebung verwendet. Enthält eine der Internationalisierungsvariablen eine ungültige Einstellung, verhält sich das Kommando so, als sei keine der Variablen definiert worden.

LC_ALL

Ist diese Variable auf einen Wert gesetzt, d. h. ist sie nicht leer, überschreibt dieser Wert die Werte aller übrigen Internationalisierungsvariablen.

LC_CTYPE

Legt die internationale Umgebung für die Interpretation der Byte-Folgen eines Datentexts als Zeichen fest (z.B. Singlebytezeichen im Unterschied zu Mehrbytezeichen in Argumenten).

LC_MESSAGES

Legt die internationale Umgebung für Format und Inhalt der Diagnosemeldungen fest, die in die Standardfehlerausgabe geschrieben werden.

NLSPATH

Legt den Pfad der Meldungsdateien für LC_MESSAGES fest.

Beispiel

Die Datei filme, die in unkomprimiertem Zustand 4862 Byte belegt, wird komprimiert.

$ ls -l

total 10

-rw-------  1  FELIX    gruppe1    4862 Aug 19 09:27 filme
$ compress -v filme

compress: filme: 50.78% Compression -- replaced with filme.Z

$ ls -l
total 6

-rw-------  1  FELIX    gruppe1    2393 Aug 19 09:27 filme.Z

Siehe auch

uncompress, zcat