pack, pcat, unpack - compress and expand files using Huffman code
attempts to store the specified files in a compressed form. Wherever
possible, each input file name is replaced by a packed file with the
same ownership, modes, and access and modification times. The option
forces packing of name. This is useful for causing an entire directory
to be packed even if some of the files do not benefit. If is success‐
ful, name is removed. Packed files can be restored to their original
form using or
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 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 file, it is usually not worthwhile to pack
files smaller than three blocks unless the character frequency distri‐
bution is very skewed such as in 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 ver‐
sions being about 90% of the original size.
returns a value that is the number of files that it failed to compress.
No packing occurs if:
· The file appears to be already packed.
· The file name has more than 12 characters and the file system is
configured as a short filename system.
· The file has links.
· The file is a directory.
· The file cannot be opened.
· The file is empty.
· No disk storage blocks will be saved by packing.
· A file called already exists.
· The file cannot be created.
· An I/O error occurred during processing.
On short file name systems, the last segment of the file name must con‐
tain no more than 12 characters to allow space for the appended exten‐
sion. Directories cannot be compressed.
does for packed files what does for ordinary files, except that cannot
be used as a filter. The specified files are unpacked and written to
the standard output. Thus to view a packed file named use:
To make an unpacked copy (named file) of a packed file named without
destroying use the command:
returns the number of files it was unable to unpack. Failure may occur
· The file name (exclusive of the has more than 12 characters;
· The file cannot be opened;
· The file does not appear to have been created by pack.
expands files created by For each file name specified in the command, a
search is made for a file called (or just name if name ends in If this
file appears to be a packed file, it is replaced by its expanded ver‐
sion. The new file has the suffix stripped from its name, and has the
same access modes, access and modification dates, and owner as those of
the packed file.
returns a value that is the number of files it was unable to unpack.
Failure may occur for the reasons given for as well as for the follow‐
· A file with the "unpacked" name already exists;
· The unpacked file cannot be created.
Access Control Lists (ACLs)
retains all entries in a file's access control list when compressing
and expanding it (see acl(5)).
Optional access control list entries of networked files are summarized
(as returned in by but not copied to the new file (see stat(2)).
This command is likely to be withdrawn from X/Open standards. Applica‐
tions using this command might not be portable to other vendors' sys‐
tems. Instead of it is recommended that you use the utility as it has
the following advantages:
· The algorithm used to create the output files is frequently more
effective in reducing the size of files
· The compress utility can compress data from its standard input,
not just a named regular file. Thus it is useful in pipelines
is recommended instead of and, is recommended instead of
SEE ALSOcat(1), compact(1), compress(1), acl(5).