|
1 '\" te |
|
2 .TH pixz 1 |
|
3 .SH NAME |
|
4 pixz \- parallel, indexing version of XZ |
|
5 |
|
6 .SH SYNOPSIS |
|
7 .LP |
|
8 .nf |
|
9 \fB/usr/bin/pixz\fR input output.pxz |
|
10 .fi |
|
11 |
|
12 .LP |
|
13 .nf |
|
14 \fB/usr/bin/pixz\fR -d input.pxz output |
|
15 .fi |
|
16 |
|
17 .LP |
|
18 .nf |
|
19 \fB/usr/bin/pixz\fR -l input.tpxz |
|
20 .fi |
|
21 |
|
22 .LP |
|
23 .nf |
|
24 \fB/usr/bin/pixz\fR -x /path/to/file < input.tpxz |
|
25 .fi |
|
26 |
|
27 .SH DESCRIPTION |
|
28 .sp |
|
29 .LP |
|
30 The existing XZ Utils ( http://tukaani.org/xz/ ) provide great compression |
|
31 in the .xz file format, but they have two significant problems: |
|
32 .sp |
|
33 .LP |
|
34 .RS +4 |
|
35 .TP |
|
36 .ie t \(bu |
|
37 .el o |
|
38 They are single-threaded, while most users nowadays have multi-core computers. |
|
39 .RE |
|
40 .RS +4 |
|
41 .TP |
|
42 .ie t \(bu |
|
43 .el o |
|
44 The .xz files they produce are just one big block of compressed data, rather than a collection of smaller blocks. This makes random access to the original data impossible. |
|
45 .RE |
|
46 .sp |
|
47 .LP |
|
48 With pixz, both these problems are solved. |
|
49 |
|
50 .SH EXAMPLES |
|
51 .sp |
|
52 .LP |
|
53 Specifying input and output: |
|
54 .sp |
|
55 .ne 2 |
|
56 .mk |
|
57 .na |
|
58 $ pixz < foo.tar > foo.tpxz |
|
59 .LP |
|
60 |
|
61 .sp .6 |
|
62 .RS 4n |
|
63 Same as 'pixz foo.tar foo.tpxz' |
|
64 .RE |
|
65 |
|
66 .sp |
|
67 .ne 2 |
|
68 .mk |
|
69 .na |
|
70 $ pixz -i foo.tar -o foo.tpxz |
|
71 .LP |
|
72 |
|
73 .sp .6 |
|
74 .RS 4n |
|
75 Ditto. These both work for -x, -d and -l too, eg: |
|
76 .RE |
|
77 |
|
78 .sp |
|
79 .ne 2 |
|
80 .mk |
|
81 .na |
|
82 $ pixz -x -i foo.tpxz -o foo.tar file1 file2 ... |
|
83 .LP |
|
84 |
|
85 .sp .6 |
|
86 .RS 4n |
|
87 # Extract the files from foo.tpxz into foo.tar |
|
88 .RE |
|
89 |
|
90 .sp |
|
91 .ne 2 |
|
92 .mk |
|
93 .na |
|
94 $ pixz foo.tar |
|
95 .LP |
|
96 |
|
97 .sp .6 |
|
98 .RS 4n |
|
99 Compress it to foo.tpxz, removing the original |
|
100 .RE |
|
101 |
|
102 .sp |
|
103 .ne 2 |
|
104 .mk |
|
105 .na |
|
106 $ pixz -d foo.tpxz |
|
107 .LP |
|
108 |
|
109 .sp .6 |
|
110 .RS 4n |
|
111 Extract it to foo.tar, removing the original |
|
112 .RE |
|
113 |
|
114 .SH OPTIONS |
|
115 .TP |
|
116 .B -1 |
|
117 Faster, worse compression. |
|
118 .TP |
|
119 .B -9 |
|
120 Better, slower compression. |
|
121 .TP |
|
122 .B -p <number> |
|
123 Cap the number of threads at <number>. |
|
124 .TP |
|
125 .B -t |
|
126 Compress but don't treat it as a tarball (don't index it). |
|
127 .TP |
|
128 .B -d |
|
129 Decompress, don't check that contents match index. |
|
130 .TP |
|
131 .B -l |
|
132 List the xz blocks instead of files. |
|
133 |
|
134 .SH WARNING |
|
135 Running pixz without the -t flag will cause it to treat the input |
|
136 as a tarball, as long as it looks vaguely tarball-like. This means if the |
|
137 file starts with at least 1024 zero bytes, pixz will assume it's empty, and |
|
138 truncate the output! If your input files aren't tarballs, run with -t or |
|
139 face possible data-loss. |