compress, uncompress, zcat - compress and expand data
Syntaxcompress [ options ] [ name ... ]
uncompress [ options ] [ name ... ]
zcat [ name ... ]
The command reduces the size of the named files using adaptive Lempel-
Ziv coding. Whenever possible, each file is replaced by one with the
extension .Z, while keeping the same ownership modes, access, and modi‐
fication times. If no files are specified, the standard input is com‐
pressed to the standard output. Compressed files can be restored to
their original form using or
The command uses the modified Lempel-Ziv algorithm. Common substrings
in the file are first replaced by 9-bit codes 257 and up. When code
512 is reached, the algorithm switches to 10-bit codes and continues to
use more bits until the limit specified by the -b flag is reached
(default 16). The bits must be between 9 and 16. The default can be
changed in the source to allow to be run on a smaller machine.
After the bits limit is attained, periodically checks the compression
ratio. If the ratio is increasing, continues to use the existing code
dictionary. However, if the compression ratio decreases, discards the
table of substrings and rebuilds it from scratch. This allows the
algorithm to adapt to the next block of the file.
How much each file is compressed depends on the size of the input, the
number of bits per code, and the distribution of common substrings.
Typically, text such as source code or English is reduced by 50-60%.
Compression is generally much better than that achieved by Huffman cod‐
ing or adaptive Huffman coding, and takes less time to compute.
If an error occurs, exit status is 1. However, if the last file was
not compressed because it became larger, the status is 2. Otherwise,
the status is 0.
Options-b The -b flag is omitted for since the bits parameter specified dur‐
ing compression is encoded within the output along with a number
that ensures that neither decompression of random data nor recom‐
pression of compressed data is attempted.
-c The cat option. Makes compress/uncompress write to the standard
output without changing any files. Neither -c nor alter files.
-f Forces compression of name, even if it does not actually shrink
name, or if the corresponding name.Z file already exists. If the
-f option is omitted, the user is asked whether an existing name.Z
file should be overwritten unless is run in the background under
-q Quiet, not as verbose.
-v Displays the percent reduction of each file.
-V Prints version and options.
Usage: compress [-fvc] [-b maxbits] [file ...]
Invalid options were specified on the command line.
Maxbits must follow -b.
file: not in compressed format
The file specified to uncompress has not been compressed.
file: compressed with xx bits, can only handle yy bits
The file was compressed by a program that could deal with more bits
than the compress code on this machine. Recompress the file with
file: already has .Z suffix -- no change
The file is assumed to be compressed already. Rename the file and try
file: filename too long to tack on .Z
The file cannot be compressed because its name is longer than 12 char‐
acters. Rename and try again.
file already exists; do you wish to overwrite (y or n)?
Type y if you want the output file to be replaced; type n if you do
uncompress: corrupt input
A SIGSEGV violation was detected which usually means that the input
file is corrupted.
Percent of the input saved by compression. (For the -v option only.)
-- not a regular file: unchanged
If the input file is not a regular file (for example, a directory), it
-- has xx other links: unchanged
The input file has links; it is left unchanged. See for more informa‐
-- file unchanged
No saving is achieved by compression. The input remains unchanged.
Although compressed files are compatible between machines with large
memory, -b12 should be used for file transfer to architectures with a
small process data space (64KB or less).