pack, pcat, unpack -- compress and expand files


pack [ -f ] [ - ] name ...

pcat name ...

unpack name ...


pack attempts to store the specified files in a compressed form. Wherever possible, each input file name is replaced by a packed file name.z with the same access modes, access and modified dates, and the owner of name. If pack is successful, name will be removed. Packed files can be restored to their original form using unpack or pcat.

pack uses Huffman (minimum redundancy) codes on a byte-by-byte basis.

The -f option forces packing of all files to ensure consistency in a directory.

If the ``-'' argument is used, an internal flag is set that causes pack to display information about the file compression. Additional occurrences of ``-'' in place of name will cause the internal flag to be set and reset.

The amount of compression obtained depends on the size of the input file and the character frequency distribution. Because a decoding tree forms the first part of each .z file, it is usually not worthwhile to pack files smaller than three blocks, unless the character frequency distribution is very scattered, which may occur with printer plots or pictures.

Typically, text files are reduced to 60-75% of their original size. Load modules, which use a larger character set and have a more uniform distribution of characters, show little compression, the packed versions being about 90% of the original size.

pcat does for packed files what cat(C) does for ordinary files. The specified files are unpacked and written to the standard output. Enter pcat name.z or just pcat name to view the packed file name.z.

unpack expands files created by pack. For each file name specified in the command, a search is made for a file called name.z (or just name, if name ends in .z). If this file appears to be a packed file, it is replaced by its expanded version. The new file has the .z suffix stripped from its name, and has the same access modes, access and modification dates, and owner as those of the packed file.

Exit values

pcat returns the number of files it was unable to unpack.

pack returns a value that is the number of files that it failed to compress.

unpack returns a value that is the number of files it was unable to unpack.


Make an unpacked copy of packed.z without destroying it:

pcat packed > unpacked_copy


pack will fail if: The last segment of the filename must contain no more than 253 characters to allow space for the appended .z extension. Directories cannot be compressed.

pcat and unpack fail if:

unpack may also fail if the ``unpacked'' name already exists in a file, or if the unpacked file cannot be created.

Standards conformance

pack, pcat and unpack are conformant with:

AT&T SVID Issue 2;
X/Open CAE Specification, Commands and Utilities, Issue 4, 1992: note that pack, pcat and unpack are marked as to be withdrawn.

© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003