compress

Hurricane Electric Internet Services: Accounts starting at $9.95/month
Hurricane Electric Internet Services

NAME

       compress, uncompress, zcat - compress and expand data


SYNOPSIS

       compress [ -f ] [ -v ] [ -c ] [ -V ] [ -b bits ] [ name ...  ]
       uncompress [ -f ] [ -v ] [ -c ] [ -V ] [ name ...  ]
       zcat [ -V ] [ name ...  ]


DESCRIPTION

       Compress  reduces  the size of the named files using adap-
       tive Lempel-Ziv coding.  Whenever possible, each  file  is
       replaced  by  one with the extension .Z, while keeping the
       same ownership modes, access and modification  times.   If
       no  files  are specified, the standard input is compressed
       to the standard output.  Compressed files can be  restored
       to their original form using uncompress or zcat.

       The  -f  option  will  force compression of name.  This is
       useful for compressing an entire directory, even  if  some
       of  the  files do not actually shrink.  If -f is not given
       and compress  is  run  in  the  foreground,  the  user  is
       prompted  as  to  whether an existing file should be over-
       written.

       The -c option makes compress/uncompress write to the stan-
       dard  output;  no  files  are changed.  The nondestructive
       behavior of zcat is identical to that of uncompress -c.

       Compress uses the modified Lempel-Ziv  algorithm  popular-
       ized  in  "A  Technique for High Performance Data Compres-
       sion", Terry A. Welch, IEEE Computer, vol. 17, no. 6 (June
       1984),  pp. 8-19.  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 con-
       tinues to use more bits until the limit specified  by  the
       -b  flag  is reached (default 16).  Bits must be between 9
       and 16.  The default can be changed in the source to allow
       compress to be run on a smaller machine.

       After  the  bits  limit is attained, compress periodically
       checks the compression ratio.  If it is  increasing,  com-
       press continues to use the existing code dictionary.  How-
       ever, if the compression ratio  decreases,  compress  dis-
       cards  the  table  of  substrings  and  rebuilds  it  from
       scratch.  This allows the algorithm to adapt to  the  next
       "block" of the file.

       Note that the -b flag is omitted for uncompress, since the
       bits parameter specified  during  compression  is  encoded
       within  the  output,  along  with a magic number to ensure
       that neither decompression of random data  nor  recompres-
       sion of compressed data is attempted.


       The  amount of compression obtained depends on the size of
       the input, the number of bits per code, and the  distribu-
       tion of common substrings.  Typically, text such as source
       code or English is reduced by 50-60%.  Compression is gen-
       erally  much  better  than that achieved by Huffman coding
       (as used in pack), or adaptive Huffman  coding  (compact),
       and takes less time to compute.

       Under  the  -v  option,  a message is printed yielding the
       percentage of reduction for each file compressed.

       If the -V option is specified,  the  current  version  and
       compile options are printed on stderr.

       Exit  status  is  normally  0;  if the last file is larger
       after (attempted) compression, the  status  is  2;  if  an
       error occurs, exit status is 1.


SEE ALSO

       pack(1), compact(1)


DIAGNOSTICS

       Usage: compress [-dfvcV] [-b maxbits] [file ...]
               Invalid  options  were  specified  on  the command
               line.
       Missing maxbits
               Maxbits must follow -b.
       file: not in compressed format
               The file specified to uncompress has not been com-
               pressed.
       file: compressed with xx bits, can only handle yy bits
               File  was  compressed by a program that could deal
               with more bits than  the  compress  code  on  this
               machine.  Recompress the file with smaller bits.
       file: already has .Z suffix -- no change
               The  file  is  assumed  to  be already compressed.
               Rename the file and try again.
       file: filename too long to tack on .Z
               The file cannot be compressed because its name  is
               longer  than 12 characters.  Rename and try again.
               This message does not occur on BSD systems.
       file already exists; do you wish to overwrite (y or n)?
               Respond "y" if you want  the  output  file  to  be
               replaced; "n" if not.
       uncompress: corrupt input
               A  SIGSEGV  violation  was  detected which usually
               means that the input file has been corrupted.
       Compression: xx.xx%
               Percentage of  the  input  saved  by  compression.
               (Relevant only for -v.)
       -- not a regular file: unchanged
               When the input file is not a regular file, (e.g. a
               directory), it is left unaltered.
       -- has xx other links: unchanged
               The input file has links; it  is  left  unchanged.
               See ln(1) for more information.
       -- file unchanged
               No  savings is achieved by compression.  The input
               remains virgin.


BUGS

       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, as exhibited by the DEC PDP series, the Intel 80286,
       etc.)
Hurricane Electric Internet Services: Accounts starting at $9.95/month
Hurricane Electric Internet Services
Copyright (C) 1998 Hurricane Electric. All Rights Reserved.