author | Norm Jacobs <Norm.Jacobs@Oracle.COM> |
Thu, 28 Apr 2011 08:31:38 -0700 | |
changeset 207 | 6bd9160c5c3a |
parent 181 | 87e11e685b1f |
permissions | -rw-r--r-- |
61
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
1 |
.\" |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
2 |
.PU |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
3 |
.TH bzip2 1 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
4 |
.SH NAME |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
5 |
bzip2, bunzip2 \- a block-sorting file compressor, v1.0.6 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
6 |
.br |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
7 |
bzcat \- decompresses files to stdout |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
8 |
.br |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
9 |
bzip2recover \- recovers data from damaged bzip2 files |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
10 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
11 |
.SH SYNOPSIS |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
12 |
.ll +8 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
13 |
.B bzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
14 |
.RB [ " \-cdfkqstvzVL123456789 " ] |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
15 |
[ |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
16 |
.I "filenames \&..." |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
17 |
] |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
18 |
.ll -8 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
19 |
.br |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
20 |
.B bunzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
21 |
.RB [ " \-fkvsVL " ] |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
22 |
[ |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
23 |
.I "filenames \&..." |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
24 |
] |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
25 |
.br |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
26 |
.B bzcat |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
27 |
.RB [ " \-s " ] |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
28 |
[ |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
29 |
.I "filenames \&..." |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
30 |
] |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
31 |
.br |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
32 |
.B bzip2recover |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
33 |
.I "filename" |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
34 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
35 |
.SH DESCRIPTION |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
36 |
.I bzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
37 |
compresses files using the Burrows-Wheeler block sorting |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
38 |
text compression algorithm, and Huffman coding. Compression is |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
39 |
generally considerably better than that achieved by more conventional |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
40 |
LZ77/LZ78-based compressors, and approaches the performance of the PPM |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
41 |
family of statistical compressors. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
42 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
43 |
The command-line options are deliberately very similar to |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
44 |
those of |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
45 |
.I GNU gzip, |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
46 |
but they are not identical. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
47 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
48 |
.I bzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
49 |
expects a list of file names to accompany the |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
50 |
command-line flags. Each file is replaced by a compressed version of |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
51 |
itself, with the name "original_name.bz2". |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
52 |
Each compressed file |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
53 |
has the same modification date, permissions, and, when possible, |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
54 |
ownership as the corresponding original, so that these properties can |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
55 |
be correctly restored at decompression time. File name handling is |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
56 |
naive in the sense that there is no mechanism for preserving original |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
57 |
file names, permissions, ownerships or dates in filesystems which lack |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
58 |
these concepts, or have serious file name length restrictions, such as |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
59 |
MS-DOS. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
60 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
61 |
.I bzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
62 |
and |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
63 |
.I bunzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
64 |
will by default not overwrite existing |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
65 |
files. If you want this to happen, specify the \-f flag. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
66 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
67 |
If no file names are specified, |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
68 |
.I bzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
69 |
compresses from standard |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
70 |
input to standard output. In this case, |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
71 |
.I bzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
72 |
will decline to |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
73 |
write compressed output to a terminal, as this would be entirely |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
74 |
incomprehensible and therefore pointless. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
75 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
76 |
.I bunzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
77 |
(or |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
78 |
.I bzip2 \-d) |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
79 |
decompresses all |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
80 |
specified files. Files which were not created by |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
81 |
.I bzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
82 |
will be detected and ignored, and a warning issued. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
83 |
.I bzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
84 |
attempts to guess the filename for the decompressed file |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
85 |
from that of the compressed file as follows: |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
86 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
87 |
filename.bz2 becomes filename |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
88 |
filename.bz becomes filename |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
89 |
filename.tbz2 becomes filename.tar |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
90 |
filename.tbz becomes filename.tar |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
91 |
anyothername becomes anyothername.out |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
92 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
93 |
If the file does not end in one of the recognised endings, |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
94 |
.I .bz2, |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
95 |
.I .bz, |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
96 |
.I .tbz2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
97 |
or |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
98 |
.I .tbz, |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
99 |
.I bzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
100 |
complains that it cannot |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
101 |
guess the name of the original file, and uses the original name |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
102 |
with |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
103 |
.I .out |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
104 |
appended. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
105 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
106 |
As with compression, supplying no |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
107 |
filenames causes decompression from |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
108 |
standard input to standard output. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
109 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
110 |
.I bunzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
111 |
will correctly decompress a file which is the |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
112 |
concatenation of two or more compressed files. The result is the |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
113 |
concatenation of the corresponding uncompressed files. Integrity |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
114 |
testing (\-t) |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
115 |
of concatenated |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
116 |
compressed files is also supported. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
117 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
118 |
You can also compress or decompress files to the standard output by |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
119 |
giving the \-c flag. Multiple files may be compressed and |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
120 |
decompressed like this. The resulting outputs are fed sequentially to |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
121 |
stdout. Compression of multiple files |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
122 |
in this manner generates a stream |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
123 |
containing multiple compressed file representations. Such a stream |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
124 |
can be decompressed correctly only by |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
125 |
.I bzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
126 |
version 0.9.0 or |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
127 |
later. Earlier versions of |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
128 |
.I bzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
129 |
will stop after decompressing |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
130 |
the first file in the stream. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
131 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
132 |
.I bzcat |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
133 |
(or |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
134 |
.I bzip2 -dc) |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
135 |
decompresses all specified files to |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
136 |
the standard output. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
137 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
138 |
.I bzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
139 |
will read arguments from the environment variables |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
140 |
.I BZIP2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
141 |
and |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
142 |
.I BZIP, |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
143 |
in that order, and will process them |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
144 |
before any arguments read from the command line. This gives a |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
145 |
convenient way to supply default arguments. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
146 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
147 |
Compression is always performed, even if the compressed |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
148 |
file is slightly |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
149 |
larger than the original. Files of less than about one hundred bytes |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
150 |
tend to get larger, since the compression mechanism has a constant |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
151 |
overhead in the region of 50 bytes. Random data (including the output |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
152 |
of most file compressors) is coded at about 8.05 bits per byte, giving |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
153 |
an expansion of around 0.5%. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
154 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
155 |
As a self-check for your protection, |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
156 |
.I |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
157 |
bzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
158 |
uses 32-bit CRCs to |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
159 |
make sure that the decompressed version of a file is identical to the |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
160 |
original. This guards against corruption of the compressed data, and |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
161 |
against undetected bugs in |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
162 |
.I bzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
163 |
(hopefully very unlikely). The |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
164 |
chances of data corruption going undetected is microscopic, about one |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
165 |
chance in four billion for each file processed. Be aware, though, that |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
166 |
the check occurs upon decompression, so it can only tell you that |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
167 |
something is wrong. It can't help you |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
168 |
recover the original uncompressed |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
169 |
data. You can use |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
170 |
.I bzip2recover |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
171 |
to try to recover data from |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
172 |
damaged files. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
173 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
174 |
Return values: 0 for a normal exit, 1 for environmental problems (file |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
175 |
not found, invalid flags, I/O errors, &c), 2 to indicate a corrupt |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
176 |
compressed file, 3 for an internal consistency error (eg, bug) which |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
177 |
caused |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
178 |
.I bzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
179 |
to panic. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
180 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
181 |
.SH OPTIONS |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
182 |
.TP |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
183 |
.B \-c --stdout |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
184 |
Compress or decompress to standard output. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
185 |
.TP |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
186 |
.B \-d --decompress |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
187 |
Force decompression. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
188 |
.I bzip2, |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
189 |
.I bunzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
190 |
and |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
191 |
.I bzcat |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
192 |
are |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
193 |
really the same program, and the decision about what actions to take is |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
194 |
done on the basis of which name is used. This flag overrides that |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
195 |
mechanism, and forces |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
196 |
.I bzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
197 |
to decompress. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
198 |
.TP |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
199 |
.B \-z --compress |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
200 |
The complement to \-d: forces compression, regardless of the |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
201 |
invocation name. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
202 |
.TP |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
203 |
.B \-t --test |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
204 |
Check integrity of the specified file(s), but don't decompress them. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
205 |
This really performs a trial decompression and throws away the result. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
206 |
.TP |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
207 |
.B \-f --force |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
208 |
Force overwrite of output files. Normally, |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
209 |
.I bzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
210 |
will not overwrite |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
211 |
existing output files. Also forces |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
212 |
.I bzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
213 |
to break hard links |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
214 |
to files, which it otherwise wouldn't do. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
215 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
216 |
bzip2 normally declines to decompress files which don't have the |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
217 |
correct magic header bytes. If forced (-f), however, it will pass |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
218 |
such files through unmodified. This is how GNU gzip behaves. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
219 |
.TP |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
220 |
.B \-k --keep |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
221 |
Keep (don't delete) input files during compression |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
222 |
or decompression. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
223 |
.TP |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
224 |
.B \-s --small |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
225 |
Reduce memory usage, for compression, decompression and testing. Files |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
226 |
are decompressed and tested using a modified algorithm which only |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
227 |
requires 2.5 bytes per block byte. This means any file can be |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
228 |
decompressed in 2300k of memory, albeit at about half the normal speed. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
229 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
230 |
During compression, \-s selects a block size of 200k, which limits |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
231 |
memory use to around the same figure, at the expense of your compression |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
232 |
ratio. In short, if your machine is low on memory (8 megabytes or |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
233 |
less), use \-s for everything. See MEMORY MANAGEMENT below. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
234 |
.TP |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
235 |
.B \-q --quiet |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
236 |
Suppress non-essential warning messages. Messages pertaining to |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
237 |
I/O errors and other critical events will not be suppressed. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
238 |
.TP |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
239 |
.B \-v --verbose |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
240 |
Verbose mode -- show the compression ratio for each file processed. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
241 |
Further \-v's increase the verbosity level, spewing out lots of |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
242 |
information which is primarily of interest for diagnostic purposes. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
243 |
.TP |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
244 |
.B \-L --license -V --version |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
245 |
Display the software version, license terms and conditions. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
246 |
.TP |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
247 |
.B \-1 (or \-\-fast) to \-9 (or \-\-best) |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
248 |
Set the block size to 100 k, 200 k .. 900 k when compressing. Has no |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
249 |
effect when decompressing. See MEMORY MANAGEMENT below. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
250 |
The \-\-fast and \-\-best aliases are primarily for GNU gzip |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
251 |
compatibility. In particular, \-\-fast doesn't make things |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
252 |
significantly faster. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
253 |
And \-\-best merely selects the default behaviour. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
254 |
.TP |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
255 |
.B \-- |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
256 |
Treats all subsequent arguments as file names, even if they start |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
257 |
with a dash. This is so you can handle files with names beginning |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
258 |
with a dash, for example: bzip2 \-- \-myfilename. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
259 |
.TP |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
260 |
.B \--repetitive-fast --repetitive-best |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
261 |
These flags are redundant in versions 0.9.5 and above. They provided |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
262 |
some coarse control over the behaviour of the sorting algorithm in |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
263 |
earlier versions, which was sometimes useful. 0.9.5 and above have an |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
264 |
improved algorithm which renders these flags irrelevant. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
265 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
266 |
.SH MEMORY MANAGEMENT |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
267 |
.I bzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
268 |
compresses large files in blocks. The block size affects |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
269 |
both the compression ratio achieved, and the amount of memory needed for |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
270 |
compression and decompression. The flags \-1 through \-9 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
271 |
specify the block size to be 100,000 bytes through 900,000 bytes (the |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
272 |
default) respectively. At decompression time, the block size used for |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
273 |
compression is read from the header of the compressed file, and |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
274 |
.I bunzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
275 |
then allocates itself just enough memory to decompress |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
276 |
the file. Since block sizes are stored in compressed files, it follows |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
277 |
that the flags \-1 to \-9 are irrelevant to and so ignored |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
278 |
during decompression. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
279 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
280 |
Compression and decompression requirements, |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
281 |
in bytes, can be estimated as: |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
282 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
283 |
Compression: 400k + ( 8 x block size ) |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
284 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
285 |
Decompression: 100k + ( 4 x block size ), or |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
286 |
100k + ( 2.5 x block size ) |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
287 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
288 |
Larger block sizes give rapidly diminishing marginal returns. Most of |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
289 |
the compression comes from the first two or three hundred k of block |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
290 |
size, a fact worth bearing in mind when using |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
291 |
.I bzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
292 |
on small machines. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
293 |
It is also important to appreciate that the decompression memory |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
294 |
requirement is set at compression time by the choice of block size. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
295 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
296 |
For files compressed with the default 900k block size, |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
297 |
.I bunzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
298 |
will require about 3700 kbytes to decompress. To support decompression |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
299 |
of any file on a 4 megabyte machine, |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
300 |
.I bunzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
301 |
has an option to |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
302 |
decompress using approximately half this amount of memory, about 2300 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
303 |
kbytes. Decompression speed is also halved, so you should use this |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
304 |
option only where necessary. The relevant flag is -s. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
305 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
306 |
In general, try and use the largest block size memory constraints allow, |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
307 |
since that maximises the compression achieved. Compression and |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
308 |
decompression speed are virtually unaffected by block size. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
309 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
310 |
Another significant point applies to files which fit in a single block |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
311 |
-- that means most files you'd encounter using a large block size. The |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
312 |
amount of real memory touched is proportional to the size of the file, |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
313 |
since the file is smaller than a block. For example, compressing a file |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
314 |
20,000 bytes long with the flag -9 will cause the compressor to |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
315 |
allocate around 7600k of memory, but only touch 400k + 20000 * 8 = 560 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
316 |
kbytes of it. Similarly, the decompressor will allocate 3700k but only |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
317 |
touch 100k + 20000 * 4 = 180 kbytes. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
318 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
319 |
Here is a table which summarises the maximum memory usage for different |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
320 |
block sizes. Also recorded is the total compressed size for 14 files of |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
321 |
the Calgary Text Compression Corpus totalling 3,141,622 bytes. This |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
322 |
column gives some feel for how compression varies with block size. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
323 |
These figures tend to understate the advantage of larger block sizes for |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
324 |
larger files, since the Corpus is dominated by smaller files. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
325 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
326 |
Compress Decompress Decompress Corpus |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
327 |
Flag usage usage -s usage Size |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
328 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
329 |
-1 1200k 500k 350k 914704 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
330 |
-2 2000k 900k 600k 877703 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
331 |
-3 2800k 1300k 850k 860338 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
332 |
-4 3600k 1700k 1100k 846899 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
333 |
-5 4400k 2100k 1350k 845160 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
334 |
-6 5200k 2500k 1600k 838626 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
335 |
-7 6100k 2900k 1850k 834096 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
336 |
-8 6800k 3300k 2100k 828642 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
337 |
-9 7600k 3700k 2350k 828642 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
338 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
339 |
.SH RECOVERING DATA FROM DAMAGED FILES |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
340 |
.I bzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
341 |
compresses files in blocks, usually 900kbytes long. Each |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
342 |
block is handled independently. If a media or transmission error causes |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
343 |
a multi-block .bz2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
344 |
file to become damaged, it may be possible to |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
345 |
recover data from the undamaged blocks in the file. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
346 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
347 |
The compressed representation of each block is delimited by a 48-bit |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
348 |
pattern, which makes it possible to find the block boundaries with |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
349 |
reasonable certainty. Each block also carries its own 32-bit CRC, so |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
350 |
damaged blocks can be distinguished from undamaged ones. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
351 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
352 |
.I bzip2recover |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
353 |
is a simple program whose purpose is to search for |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
354 |
blocks in .bz2 files, and write each block out into its own .bz2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
355 |
file. You can then use |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
356 |
.I bzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
357 |
\-t |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
358 |
to test the |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
359 |
integrity of the resulting files, and decompress those which are |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
360 |
undamaged. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
361 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
362 |
.I bzip2recover |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
363 |
takes a single argument, the name of the damaged file, |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
364 |
and writes a number of files "rec00001file.bz2", |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
365 |
"rec00002file.bz2", etc, containing the extracted blocks. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
366 |
The output filenames are designed so that the use of |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
367 |
wildcards in subsequent processing -- for example, |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
368 |
"bzip2 -dc rec*file.bz2 > recovered_data" -- processes the files in |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
369 |
the correct order. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
370 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
371 |
.I bzip2recover |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
372 |
should be of most use dealing with large .bz2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
373 |
files, as these will contain many blocks. It is clearly |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
374 |
futile to use it on damaged single-block files, since a |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
375 |
damaged block cannot be recovered. If you wish to minimise |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
376 |
any potential data loss through media or transmission errors, |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
377 |
you might consider compressing with a smaller |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
378 |
block size. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
379 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
380 |
.SH PERFORMANCE NOTES |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
381 |
The sorting phase of compression gathers together similar strings in the |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
382 |
file. Because of this, files containing very long runs of repeated |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
383 |
symbols, like "aabaabaabaab ..." (repeated several hundred times) may |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
384 |
compress more slowly than normal. Versions 0.9.5 and above fare much |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
385 |
better than previous versions in this respect. The ratio between |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
386 |
worst-case and average-case compression time is in the region of 10:1. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
387 |
For previous versions, this figure was more like 100:1. You can use the |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
388 |
\-vvvv option to monitor progress in great detail, if you want. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
389 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
390 |
Decompression speed is unaffected by these phenomena. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
391 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
392 |
.I bzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
393 |
usually allocates several megabytes of memory to operate |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
394 |
in, and then charges all over it in a fairly random fashion. This means |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
395 |
that performance, both for compressing and decompressing, is largely |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
396 |
determined by the speed at which your machine can service cache misses. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
397 |
Because of this, small changes to the code to reduce the miss rate have |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
398 |
been observed to give disproportionately large performance improvements. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
399 |
I imagine |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
400 |
.I bzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
401 |
will perform best on machines with very large caches. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
402 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
403 |
.SH CAVEATS |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
404 |
I/O error messages are not as helpful as they could be. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
405 |
.I bzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
406 |
tries hard to detect I/O errors and exit cleanly, but the details of |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
407 |
what the problem is sometimes seem rather misleading. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
408 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
409 |
This manual page pertains to version 1.0.6 of |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
410 |
.I bzip2. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
411 |
Compressed data created by this version is entirely forwards and |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
412 |
backwards compatible with the previous public releases, versions |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
413 |
0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1, 1.0.2 and above, but with the following |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
414 |
exception: 0.9.0 and above can correctly decompress multiple |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
415 |
concatenated compressed files. 0.1pl2 cannot do this; it will stop |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
416 |
after decompressing just the first file in the stream. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
417 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
418 |
.I bzip2recover |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
419 |
versions prior to 1.0.2 used 32-bit integers to represent |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
420 |
bit positions in compressed files, so they could not handle compressed |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
421 |
files more than 512 megabytes long. Versions 1.0.2 and above use |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
422 |
64-bit ints on some platforms which support them (GNU supported |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
423 |
targets, and Windows). To establish whether or not bzip2recover was |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
424 |
built with such a limitation, run it without arguments. In any event |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
425 |
you can build yourself an unlimited version if you can recompile it |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
426 |
with MaybeUInt64 set to be an unsigned 64-bit integer. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
427 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
428 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
429 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
430 |
.SH AUTHOR |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
431 |
Julian Seward, jsewardbzip.org. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
432 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
433 |
http://www.bzip.org |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
434 |
|
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
435 |
The ideas embodied in |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
436 |
.I bzip2 |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
437 |
are due to (at least) the following |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
438 |
people: Michael Burrows and David Wheeler (for the block sorting |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
439 |
transformation), David Wheeler (again, for the Huffman coder), Peter |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
440 |
Fenwick (for the structured coding model in the original |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
441 |
.I bzip, |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
442 |
and many refinements), and Alistair Moffat, Radford Neal and Ian Witten |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
443 |
(for the arithmetic coder in the original |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
444 |
.I bzip). |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
445 |
I am much |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
446 |
indebted for their help, support and advice. See the manual in the |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
447 |
source distribution for pointers to sources of documentation. Christian |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
448 |
von Roques encouraged me to look for faster sorting algorithms, so as to |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
449 |
speed up compression. Bela Lubkin encouraged me to improve the |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
450 |
worst-case compression performance. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
451 |
Donna Robinson XMLised the documentation. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
452 |
The bz* scripts are derived from those of GNU gzip. |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
453 |
Many people sent patches, helped |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
454 |
with portability problems, lent machines, gave advice and were generally |
7684fe2a9eb5
7011958 some things lost during move to userland
Mike Sullivan <Mike.Sullivan@Oracle.COM>
parents:
diff
changeset
|
455 |
helpful. |