compress(1) compress(1)
NAME
compress - Dateien komprimieren
SYNTAX
compress [option ...] [datei ...]
BESCHREIBUNG
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.
In Systemen, die die Variable RSTCHOWN auswerten, wird derjenige
Benutzer Eigentümer der komprimierten Datei, der compress aufruft
(Ausnahme: compress wird vom Systemverwalter aufgerufen). In anderen
Systemen bleibt der Eigentümer unverändert.
Zugriffsrechte und Zugriffs- oder Änderungsdatum der angegebenen
Dateien werden nicht verändert. Jede angegebene Datei wird ersetzt
durch eine Datei gleichen Namens mit .Z-Suffix.
Der Umfang der Komprimierung hängt ab von der Größe der Eingabedatei,
vom Wert für maxBits (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
[siehe pack(1)] 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 Hinter-
grund (/usr/bin/sh) abläuft
- die Komprimierung keine Platzersparnis erwarten läßt
Mit uncompress(1) können Sie eine komprimierte Datei wieder dekompri-
mieren.
Mit zcat(1) können Sie komprimierte Dateien im Originalzustand auf die
Standardausgabe ausgeben. Die komprimierte Datei wird dabei nicht ver-
ändert.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
compress(1) compress(1)
OPTIONEN
Keine Option angegeben:
Die angegebenen Dateien werden komprimiert, wenn dadurch Spei-
cherplatz gespart werden kann.
-c Die Ausgabe von compress wird nur auf die Standardausgabe
geschrieben, es wird keine Datei 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 kompri-
mierte Datei wird angezeigt:
datei Compression: xx.xx% -- replaced with datei.Z
-b maxBits
Die maximale Größe für den Abkürzungs-Code gleicher Zeichenketten
wird auf maxBits Bits festgelegt. Der Wert für maxBits muß zwi-
schen 9 und 16 liegen. Eine Herabsetzung des Wertes bewirkt, daß
die Dateien weniger komprimiert werden.
Der Parameter maxBits wird verschlüsselt in der komprimierten
Datei abgelegt, zusammen mit einem Kennzeichen (magic number),
das sicherstellt, daß eine mehrfache Komprimierung nicht möglich
ist.
-b nicht angegeben: Für maxBits wird 16 angenommen.
Vorsicht: Komprimierte Dateien sind nur kompatibel zwischen
Maschinen mit großem Prozeßdatenbereich. Für Daten-
übertragungen auf Architekturen mit kleinerem Prozeß-
datenbereich (64 Kbyte oder weniger) sollte für die
Komprimierung die Option -b 12 angegeben werden.
-- Ende der Optionenliste. Die Angabe ist nötig, wenn datei mit -
beginnt.
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 Standardein-
gabe.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
compress(1) compress(1)
datei darf kein Verzeichnis 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 verwende-
ten Dateisystem. Die maximal zulässige Länge für datei errechnet
sich aus der maximal im verwendeten Dateisystem zulässigen Datei-
namenslänge abzüglich zwei Zeichen. Damit ist die Namenserweiter-
ung auf datei.Z noch möglich. Ist der Name länger, so wird datei
nicht komprimiert. Für die Standardeingabe wird keine Datei .Z
erzeugt, die Daten werden in komprimierter Form auf die Standard-
ausgabe geschrieben.
Vorsicht: Wenn compress im Hintergrund läuft, wird eine existie-
rende .Z-Datei ohne Nachfrage überschrieben.
datei nicht angegeben:
Die Daten der Standardeingabe werden in komprimierter Form auf
die Standardausgabe geschrieben.
ENDESTATUS
0 Komprimierung erfolgreich
1 Fehler
2 Eine oder mehrere Dateien wurden nicht komprimiert, da die Kompri-
mierung die Datei vergrößert hätte. (Kann nur vorkommen, wenn -f
nicht angegeben wurde.)
>2 Fehler
FEHLERMELDUNGEN
datei: filename too long to tack on .Z
Der Name der zu komprimierenden Datei ist zu lang. compress kom-
primiert nicht.
datei -- not a regular file: unchanged
Die angegebene Datei ist keine einfache Datei. compress kompri-
miert nicht.
datei: -- has xx other links: unchanged
Auf die angegebene Datei bestehen xx Verweise. compress kompri-
miert nicht.
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98
compress(1) compress(1)
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 Umgebungsvariable LCMESSAGES bestimmt die Sprache der Meldungs-
texte. Wenn LCMESSAGES nicht oder als leere Zeichenkette definiert
ist, wird der Wert von LANG als Standardwert herangezogen. Ist auch
LANG nicht oder als leere Zeichenkette definiert, verhält sich das
System so, als wäre es nicht internationalisiert.
Die Antwort auf ja/nein-Abfragen muß in der jeweils definierten
Sprachumgebung erfolgen.
Die Umgebungsvariable LCALL bestimmt die gesamte internationale Umge-
bung. LCALL hat Vorrang vor allen anderen Umgebungsvariablen im
Bereich der Internationalisierung.
BEISPIELE
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
pack(1), pcat(1), uncompress(1), unpack(1), zcat(1).
Seite 4 Reliant UNIX 5.44 Gedruckt 11/98