annotate miscellany/compress-4.0/compress.1 @ 0:bce86c4163a3

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