Annotation of researchv9/cmd/compress/compress.1, revision 1.1.1.1

1.1       root        1: .PU
                      2: .TH COMPRESS 1 local
                      3: .SH NAME
                      4: compress, uncompress, zcat \- compress and expand data
                      5: .SH SYNOPSIS
                      6: .ll +8
                      7: .B compress
                      8: [
                      9: .B \-f
                     10: ] [
                     11: .B \-v
                     12: ] [
                     13: .B \-c
                     14: ] [
                     15: .B \-V
                     16: ] [
                     17: .B \-b
                     18: .I bits
                     19: ] [
                     20: .I "name \&..."
                     21: ]
                     22: .ll -8
                     23: .br
                     24: .B uncompress
                     25: [
                     26: .B \-f
                     27: ] [
                     28: .B \-v
                     29: ] [
                     30: .B \-c
                     31: ] [
                     32: .B \-V
                     33: ] [
                     34: .I "name \&..."
                     35: ]
                     36: .br
                     37: .B zcat
                     38: [
                     39: .B \-V
                     40: ] [
                     41: .I "name \&..."
                     42: ]
                     43: .SH DESCRIPTION
                     44: .I Compress
                     45: reduces the size of the named files using adaptive Lempel-Ziv coding.
                     46: Whenever possible,
                     47: each file is replaced by one with the extension
                     48: .B "\&.Z,"
                     49: while keeping the same ownership modes, access and modification times.
                     50: If no files are specified, the standard input is compressed to the
                     51: standard output.
                     52: Compressed files can be restored to their original form using
                     53: .I uncompress
                     54: or
                     55: .I zcat.
                     56: .PP
                     57: The
                     58: .B \-f
                     59: option will force compression of
                     60: .I name.
                     61: This is useful for compressing an entire directory,
                     62: even if some of the files do not actually shrink.
                     63: If
                     64: .B \-f
                     65: is not given and
                     66: .I compress
                     67: is run in the foreground,
                     68: the user is prompted as to whether an existing file should be overwritten.
                     69: .PP
                     70: The
                     71: .B \-c
                     72: option makes
                     73: .I compress/uncompress
                     74: write to the standard output; no files are changed.
                     75: The nondestructive behavior of
                     76: .I zcat
                     77: is identical to that of
                     78: .I uncompress
                     79: .B \-c.
                     80: .PP
                     81: .I Compress
                     82: uses the modified Lempel-Ziv algorithm popularized in
                     83: "A Technique for High Performance Data Compression",
                     84: Terry A. Welch,
                     85: .I "IEEE Computer,"
                     86: vol. 17, no. 6 (June 1984), pp. 8-19.
                     87: Common substrings in the file are first replaced by 9-bit codes 257 and up.
                     88: When code 512 is reached, the algorithm switches to 10-bit codes and
                     89: continues to use more bits until the
                     90: limit specified by the
                     91: .B \-b
                     92: flag is reached (default 16).
                     93: .I Bits
                     94: must be between 9 and 16.  The default can be changed in the source to allow
                     95: .I compress
                     96: to be run on a smaller machine.
                     97: .PP
                     98: After the
                     99: .I bits
                    100: limit is attained,
                    101: .I compress
                    102: periodically checks the compression ratio.  If it is increasing,
                    103: .I compress
                    104: continues to use the existing code dictionary.  However,
                    105: if the compression ratio decreases,
                    106: .I compress
                    107: discards the table of substrings and rebuilds it from scratch.  This allows
                    108: the algorithm to adapt to the next "block" of the file.
                    109: .PP
                    110: Note that the
                    111: .B \-b
                    112: flag is omitted for
                    113: .I uncompress,
                    114: since the 
                    115: .I bits
                    116: parameter specified during compression
                    117: is encoded within the output, along with
                    118: a magic number to ensure that neither decompression of random data nor
                    119: recompression of compressed data is attempted. 
                    120: .PP
                    121: .ne 8
                    122: The amount of compression obtained depends on the size of the
                    123: input, the number of
                    124: .I bits
                    125: per code, and the distribution of common substrings.
                    126: Typically, text such as source code or English
                    127: is reduced by 50\-60%.
                    128: Compression is generally much better than that achieved by
                    129: Huffman coding (as used in
                    130: .IR pack ),
                    131: or adaptive Huffman coding
                    132: .RI ( compact ),
                    133: and takes less time to compute.
                    134: .PP
                    135: Under the
                    136: .B \-v
                    137: option,
                    138: a message is printed yielding the percentage of
                    139: reduction for each file compressed.
                    140: .PP
                    141: If the
                    142: .B \-V
                    143: option is specified, the current version and compile options are printed on
                    144: stderr.
                    145: .PP
                    146: Exit status is normally 0;
                    147: if the last file is larger after (attempted) compression, the status is 2;
                    148: if an error occurs, exit status is 1.
                    149: .SH "SEE ALSO"
                    150: pack(1), compact(1)
                    151: .SH "DIAGNOSTICS"
                    152: Usage: compress [\-dfvcV] [\-b maxbits] [file ...]
                    153: .in +8
                    154: Invalid options were specified on the command line.
                    155: .in -8
                    156: Missing maxbits
                    157: .in +8
                    158: Maxbits must follow
                    159: .BR \-b \.
                    160: .in -8
                    161: .IR file :
                    162: not in compressed format
                    163: .in +8
                    164: The file specified to
                    165: .I uncompress
                    166: has not been compressed.
                    167: .in -8
                    168: .IR file :
                    169: compressed with 
                    170: .I xx
                    171: bits, can only handle 
                    172: .I yy
                    173: bits
                    174: .in +8
                    175: .I File
                    176: was compressed by a program that could deal with
                    177: more 
                    178: .I bits
                    179: than the compress code on this machine.
                    180: Recompress the file with smaller
                    181: .IR bits \.
                    182: .in -8
                    183: .IR file :
                    184: already has .Z suffix -- no change
                    185: .in +8
                    186: The file is assumed to be already compressed.
                    187: Rename the file and try again.
                    188: .in -8
                    189: .IR file :
                    190: filename too long to tack on .Z
                    191: .in +8
                    192: The file cannot be compressed because its name is longer than
                    193: 12 characters.
                    194: Rename and try again.
                    195: This message does not occur on BSD systems.
                    196: .in -8
                    197: .I file
                    198: already exists; do you wish to overwrite (y or n)?
                    199: .in +8
                    200: Respond "y" if you want the output file to be replaced; "n" if not.
                    201: .in -8
                    202: uncompress: corrupt input
                    203: .in +8
                    204: A SIGSEGV violation was detected which usually means that the input file has
                    205: been corrupted.
                    206: .in -8
                    207: Compression: 
                    208: .I "xx.xx%"
                    209: .in +8
                    210: Percentage of the input saved by compression.
                    211: (Relevant only for
                    212: .BR \-v \.)
                    213: .in -8
                    214: -- not a regular file: unchanged
                    215: .in +8
                    216: When the input file is not a regular file,
                    217: (e.g. a directory), it is
                    218: left unaltered.
                    219: .in -8
                    220: -- has 
                    221: .I xx 
                    222: other links: unchanged
                    223: .in +8
                    224: The input file has links; it is left unchanged.  See
                    225: .IR ln "(1)"
                    226: for more information.
                    227: .in -8
                    228: -- file unchanged
                    229: .in +8
                    230: No savings is achieved by
                    231: compression.  The input remains virgin.
                    232: .in -8
                    233: .SH "BUGS"
                    234: Although compressed files are compatible between machines with large memory,
                    235: .BR \-b \12
                    236: should be used for file transfer to architectures with 
                    237: a small process data space (64KB or less, as exhibited by the DEC PDP
                    238: series, the Intel 80286, etc.)

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.