|
|
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.)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.