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 (and useful), each input file name is replaced by a
packed file name.z with the same access modes, access and modified dates,
and owner as those of name. The -f option will force packing of name.
This is useful for causing an entire directory to be packed even if some
of the files will not benefit. 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. If
the - argument is used, an internal flag is set that causes the number of
times each byte is used, its relative frequency, and the code for the
byte to be printed on the standard output. 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 skewed, which may occur with printer plots or
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.
pack returns a value that is the number of files that it failed to
No packing will occur if:
the file appears to be already packed;
the file has links;
the file is a directory;
the file cannot be opened;
no disk storage blocks will be saved by packing;
a file called name.z already exists;
the .z file cannot be created;
an I/O error occurred during processing.
Directories cannot be compressed.
Pcat does for packed files what cat(1) does for ordinary files, except
that pcat cannot be used as a filter. The specified files are unpacked
and written to the standard output. Thus to view a packed file named
To make an unpacked copy, say nnn, of a packed file named name.z (without
destroying name.z) use the command:
pcat name >nnn
Pcat returns the number of files it was unable to unpack. Failure may
the file cannot be opened;
the file does not appear to be the output of pack.
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.
Unpack returns a value that is the number of files it was unable to
unpack. Failure may occur for the same reasons that it may in pcat, as
well as for the following:
a file with the ``unpacked'' name already exists;
if the unpacked file cannot be created.
The suffix .z is used by the commands pack/unpack. The suffix .Z is used
by the commands compress/uncompress. The suffix .gz is used by the
compress(1), uncompress(1), cat(1), gzip(1), gunzip(1).
PPPPaaaaggggeeee 2222 [ Back ]