components/pixz/files/pixz.1
author John Beck <John.Beck@Oracle.COM>
Wed, 29 May 2013 08:07:31 -0700
changeset 1318 e26b2e3ea279
permissions -rw-r--r--
PSARC 2012/358 pixz 15824343 SUNBT7205960 introduce pixz

'\" te
.TH pixz 1
.SH NAME
pixz \- parallel, indexing version of XZ

.SH SYNOPSIS
.LP
.nf
\fB/usr/bin/pixz\fR input output.pxz
.fi

.LP
.nf
\fB/usr/bin/pixz\fR -d input.pxz output
.fi

.LP
.nf
\fB/usr/bin/pixz\fR -l input.tpxz
.fi

.LP
.nf
\fB/usr/bin/pixz\fR -x /path/to/file < input.tpxz
.fi

.SH DESCRIPTION
.sp
.LP
The existing XZ Utils ( http://tukaani.org/xz/ ) provide great compression
in the .xz file format, but they have two significant problems:
.sp
.LP
.RS +4
.TP
.ie t \(bu
.el o
They are single-threaded, while most users nowadays have multi-core computers.
.RE
.RS +4
.TP
.ie t \(bu
.el o
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.
.RE
.sp
.LP
With pixz, both these problems are solved.

.SH EXAMPLES
.sp
.LP
Specifying input and output:
.sp
.ne 2
.mk
.na
$ pixz < foo.tar > foo.tpxz
.LP

.sp .6
.RS 4n
Same as 'pixz foo.tar foo.tpxz'
.RE

.sp
.ne 2
.mk
.na
$ pixz -i foo.tar -o foo.tpxz
.LP

.sp .6
.RS 4n
Ditto. These both work for -x, -d and -l too, eg:
.RE

.sp
.ne 2
.mk
.na
$ pixz -x -i foo.tpxz -o foo.tar file1 file2 ...
.LP

.sp .6
.RS 4n
# Extract the files from foo.tpxz into foo.tar
.RE

.sp
.ne 2
.mk
.na
$ pixz foo.tar
.LP

.sp .6
.RS 4n
Compress it to foo.tpxz, removing the original
.RE

.sp
.ne 2
.mk
.na
$ pixz -d foo.tpxz
.LP

.sp .6
.RS 4n
Extract it to foo.tar, removing the original
.RE

.SH OPTIONS
.TP
.B -1
Faster, worse compression.
.TP
.B -9
Better, slower compression.
.TP
.B -p <number>
Cap the number of threads at <number>.
.TP
.B -t
Compress but don't treat it as a tarball (don't index it).
.TP
.B -d
Decompress, don't check that contents match index.
.TP
.B -l
List the xz blocks instead of files.

.SH WARNING
Running pixz without the -t flag will cause it to treat the input
as a tarball, as long as it looks vaguely tarball-like. This means if the
file starts with at least 1024 zero bytes, pixz will assume it's empty, and
truncate the output! If your input files aren't tarballs, run with -t or
face possible data-loss.