pack(1) pack(1)
NAME
pack, pcat, unpack - compress and expand files
SYNOPSIS
pack [-] [-f] name . . .
pcat name . . .
unpack name . . . .
DESCRIPTION
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 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.
pack returns a value that is the number of files that it
failed to compress.
No packing will occur if:
Copyright 1994 Novell, Inc. Page 1
pack(1) pack(1)
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.
The file size is over 16 MB.
The file name has more than NAME_MAX minus two
characters: pack uses two characters to append .z to the
file name.
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 name.z use:
pcat name.z
or just:
pcat name
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 occur if:
The file name (including the .z) has more than NAME_MAX
characters.
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.
Copyright 1994 Novell, Inc. Page 2
pack(1) pack(1)
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.
FILES
/usr/lib/locale/locale/LC_MESSAGES/uxdfm
language-specific message file [See LANG on environ(5).]
REFERENCES
cat(1), compress(1)
Copyright 1994 Novell, Inc. Page 3