Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ pack(1) — Reliant UNIX 5.44c4

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

compress(1)

pcat(1)

uncompress(1)

unpack(1)

zcat(1)

pack(1)                                                             pack(1)

NAME
     pack - Dateien komprimieren

SYNTAX
     pack [-f] [--] [-] datei ...

BESCHREIBUNG
     pack komprimiert Dateien mittels Huffman-Codierung.

     In Systemen, die die Variable RSTCHOWN auswerten, wird derjenige
     Benutzer Eigentümer der komprimierten Datei, der pack aufruft (Aus-
     nahme: pack wird vom Systemverwalter aufgerufen). In anderen Systemen
     bleibt der Eigentümer unverändert.

     Zugriffsrechte und Zugriffs-/Änderungsdatum werden nicht verändert.

     Falls möglich, wird jede angegebene Datei ersetzt durch eine Datei
     gleichen Namens mit .z-Suffix.

     Der Umfang der Komprimierung hängt ab von der Größe der Eingabedatei
     und der Verteilung gleicher Zeichen. Die Dateien werden in der Regel
     um 25-40% komprimiert.

     Da der erste Teil einer komprimierten Datei aus Codierungsregeln
     besteht, lohnt es sich gewöhnlich nicht, kleine Dateien zu komprimie-
     ren, es sei denn, die Datei hat eine sehr ungleichmäßige Zeichen-
     dichte, z. B. wenn sie Graphiken oder Abbildungen enthält. Die kompri-
     mierten Versionen von Objektdateien, bei denen ein umfangreicherer
     Zeichensatz verwendet wird und die eine gleichmäßigere Zeichendichte
     aufweisen, sind lediglich um 10% kleiner als die Originaldateien.

     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 Datei bereits existiert

     -  durch die Komprimierung kein Plattenplatz gespart würde

     Mit unpack können Sie eine komprimierte Datei wieder dekomprimieren.

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

     Hinweis: Sie können Dateien auch mit compress komprimieren und mit
     uncompress wieder dekomprimieren.




Seite 1                      Reliant UNIX 5.44               Gedruckt 11/98

pack(1)                                                             pack(1)

OPTIONEN
     Keine Option angegeben:
          Die angegebenen Dateien werden komprimiert, wenn dadurch Spei-
          cherplatz gespart werden kann. Zusätzlich wird der Prozentsatz
          der Komprimierung ausgegeben.

     -f   (f - force) Die Komprimierung von datei wird erzwungen, selbst
          wenn kein Speicherplatz gespart wird.

          -f nicht angegeben: Nur die Dateien werden komprimiert, bei denen
          dadurch Speicherplatz gespart werden kann.

     --   Ende der Optionenliste. Die Angabe ist nötig, wenn datei mit -
          beginnt und das Argument - nicht angegeben ist.

     -    Auf die Standardausgabe werden ausführliche statistische Informa-
          tionen über die erfolgte Komprimierung ausgegeben:

          pack: datei: xx.xx% Compresssion
               Prozentsatz der Komprimierung

          pack: From xxxxx to yyyyy bytes
               alte Größe versus neuer Größe

          Huffman tree has xx levels below root
               Tiefe des Baums, der mit dem Huffman-Algorithmus bearbeitet
               wurde

          xx distinct bytes in input
               datei enthielt xx verschiedene Zeichen

          Dictionary overhead = xxx bytes
               Größe der Codierungsregeln

          Effective entropy = x.xx bits/byte
               tatsächlicher Reduktionsfaktor

          Asymptotic entrop = x.xx bits/byte
               theoretischer Reduktionsfaktor

          Zu jedem Zeichen, das in der Eingabedatei vorkommt, wird eine
          Zeile mit folgenden Informationen ausgegeben:

          Byte xxxx
               oktaler Wert des Zeichens

          Count = xx
               Gesamtzahl dieser Zeichen in der Datei

          Relative freq. = x.xxx
               relativer Anteil dieser Zeichen an der Dateigröße in Prozent



Seite 2                      Reliant UNIX 5.44               Gedruckt 11/98

pack(1)                                                             pack(1)

          Code = xxxxx
               Angabe, wie das Zeichen codiert wurde

          - ist keine Option, sondern ein Argument und darf deshalb nicht
          vor der Option -f stehen. Sie können - vor jeder Datei und/oder
          vor mehreren aufeinanderfolgenden Dateien angeben. Jedes zweite
          Auftreten von - schaltet die Ausgabe der Statistik wieder aus
          (siehe Beispiel 1).

          - nicht angegeben: Der Prozentsatz der Komprimierung wird ausge-
          geben.

     datei
          Name der Datei, die komprimiert werden soll. Sie können mehrere
          Dateien angeben. 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 maximal zulässige Länge des Namens von datei errechnet sich
          aus der im verwendeten Dateisystem maximal zulässigen Dateina-
          menslä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 kann auch als datei.z angegeben werden. Das Suffix .z wird
          von pack ignoriert.

          Vorsicht:
               Komprimierte Dateien sind nicht unbedingt auf andere Systeme
               portierbar. Stellen Sie sicher, daß auf dem anderen System
               kein anderer Zeichensatz geladen und daß das Kommando unpack
               verfügbar ist.

FEHLERMELDUNGEN
     pack: datei: no saving - file unchanged
          (wird auf die Standardausgabe ausgegeben) Es kann kein Speicher-
          platz durch die Komprimierung gespart werden. pack komprimiert
          nicht. Wollen Sie dennoch komprimieren, so geben Sie die Option
          -f an.

     pack: datei: file name too long
          Der Name der zu komprimierenden Datei ist zu lang. pack kompri-
          miert nicht.

     pack: datei.z: already packed
          Die angegebene Datei wurde bereits komprimiert. Eine zweite Kom-
          primierung ist nicht möglich.





Seite 3                      Reliant UNIX 5.44               Gedruckt 11/98

pack(1)                                                             pack(1)

     pack: datei: has links
          Auf die angegebene Datei bestehen Verweise. pack komprimiert
          nicht.

     pack: datei: cannot pack a directory
          Die angegebene Datei ist ein Verzeichnis. pack komprimiert nicht.

     pack: datei: cannot open
          Sie haben kein Leserecht für die zu komprimierende Datei oder
          datei existiert nicht.

     pack: datei.z: cannot create
          Die komprimierte Datei kann nicht angelegt werden, weil Sie z. B.
          kein Schreibrecht für das aktuelle Verzeichnis haben.

     pack: datei: read error
          Beim Lesen der Originaldatei trat ein Fehler auf. pack kompri-
          miert nicht.

     pack: datei.z: write error
          Beim Schreiben der komprimierten Datei trat ein Fehler auf. Die
          Komprimierung wird abgebrochen, datei bleibt im Originalzustand.
          Möglicherweise bleibt die unvollständige datei.z erhalten.

     pack: datei: cannot pack a zero length file
          Die zu komprimierende Datei ist eine leere Datei.

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 Umgebungsvariable LCALL bestimmt die gesamte internationale Umge-
     bung. LCALL hat Vorrang vor allen anderen Umgebungsvariablen im
     Bereich der Internationalisierung.

BEISPIELE
     Beispiel 1

     Drei Dateien sollen komprimiert werden. Für die erste und zweite Datei
     sollen außerdem statistische Informationen über die Komprimierung aus-
     gegeben werden. Da jedes zweite Auftreten der Option - die Ausgabe der
     Statistik wieder ausschaltet, muß diese Option erneut vor datei3 ange-
     geben werden.

     $ pack - datei1 datei2 - datei3
     pack: datei1: 40.6% Compression
     pack:   From 31960 to 18984 bytes
             Huffman tree has 15 levels below root
             89 distinct bytes in input


Seite 4                      Reliant UNIX 5.44               Gedruckt 11/98

pack(1)                                                             pack(1)

             Dictionary overhead = 111 bytes
             Effective  entropy  = 4.75 bits/byte
             Asymptotic entropy  = 4.72 bits/byte
             Byte 0000, Count = 45211, Relative freq. = 0.311, Code = 11
             Byte 0001, Count = 2530, Relative freq. = 0.017, Code = 100000
             ...
             Byte 0377, Count = 2018, Relative freq. = 0.014, Code = 101001
     pack: datei2: 41.6% Compression
     pack:   From 249569 to 145840 bytes
             Huffman tree has 14 levels below root
             94 distinct bytes in input
             Dictionary overhead = 115 bytes
             Effective  entropy  = 4.67 bits/byte
             Asymptotic entropy  = 4.67 bits/byte
             Byte 0000, Count = 96281, Relative freq. = 0.323, Code = 11
             Byte 0001, Count = 5225, Relative freq. = 0.018, Code = 011100
             ...
             Byte 0377, Count = 4644, Relative freq. = 0.016, Code = 101001
     pack: datei3: 41.7% Compression

     Beispiel 2

     Der Inhalt des Verzeichnisses ABT3 soll komprimiert werden. Für die
     darin enthaltene Datei druck sind jedoch keine Leserechte gesetzt, und
     die Datei user.neu hat die Länge 0. Diese beiden Dateien bleiben daher
     im Originalzustand.

     $ ls -l ABT3
     total 272
     -rw-r--r--  1  seume    abt3    117865 Aug 19 09:27 daten80-90
     ---x--x--x  1  seume    abt3      5366 Mar 15 12:50 druck
     -rw-r--r--  1  seume    abt3      1447 Jan 10 17:02 user.alt
     -rw-r--r--  1  seume    abt3         0 Mar 14 13:16 user.neu

     $ pack -f ABT3/*
       pack: ABT3/daten80-90: 39.5% Compression
       pack: ABT3/druck: cannot open
       pack: ABT3/user.alt: 37.9% Compression
       pack: ABT3/user.neu: cannot pack a zero length file

     $ echo $?
     2

     $ ls -l ABT3
     total 154
     -rw-r--r--  1  seume    abt3     71311 Aug 19 09:27 daten80-90.z
     ---x--x--x  1  seume    abt3      5366 Mar 15 12:50 druck
     -rw-r--r--  1  seume    abt3       899 Jan 10 17:02 user.alt.z
     -rw-r--r--  1  seume    abt3         0 Mar 14 13:16 user.neu

SIEHE AUCH
     compress(1), pcat(1), uncompress(1), unpack(1), zcat(1).


Seite 5                      Reliant UNIX 5.44               Gedruckt 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026