| .TH PIGZ 1 local |
| .SH NAME |
| pigz, unpigz \- compress or expand files |
| .SH SYNOPSIS |
| .ll +8 |
| .B pigz |
| .RB [ " \-cdfhikKlLnNqrRtTz0..9 " ] |
| [ |
| .B -b |
| .I blocksize |
| ] |
| [ |
| .B -p |
| .I threads |
| ] |
| [ |
| .B -S |
| .I suffix |
| ] |
| [ |
| .I "name \&..." |
| ] |
| .ll -8 |
| .br |
| .B unpigz |
| .RB [ " \-cfhikKlLnNqrRtTz " ] |
| [ |
| .B -b |
| .I blocksize |
| ] |
| [ |
| .B -p |
| .I threads |
| ] |
| [ |
| .B -S |
| .I suffix |
| ] |
| [ |
| .I "name \&..." |
| ] |
| .SH DESCRIPTION |
| .I Pigz |
| compresses using threads to make use of multiple processors and cores. |
| The input is broken up into 128 KB chunks with each compressed in parallel. |
| The individual check value for each chunk is also calculated in parallel. |
| The compressed data is written in order to the output, and a combined check |
| value is calculated from the individual check values. |
| .PP |
| The compressed data format generated is in the gzip, zlib, or single-entry |
| zip format using the deflate compression method. The compression produces |
| partial raw deflate streams which are concatenated by a single write thread |
| and wrapped with the appropriate header and trailer, where the trailer |
| contains the combined check value. |
| .PP |
| Each partial raw deflate stream is terminated by an empty stored block |
| (using the Z_SYNC_FLUSH option of zlib), in order to end that partial bit |
| stream at a byte boundary. That allows the partial streams to be |
| concatenated simply as sequences of bytes. This adds a very small four to |
| five byte overhead to the output for each input chunk. |
| .PP |
| The default input block size is 128K, but can be changed with the |
| .B -b |
| option. The number of compress threads is set by default to the number |
| of online processors, |
| which can be changed using the |
| .B -p |
| option. Specifying |
| .B -p 1 |
| avoids the use of threads entirely. |
| .PP |
| The input blocks, while compressed independently, have the last 32K of the |
| previous block loaded as a preset dictionary to preserve the compression |
| effectiveness of deflating in a single thread. This can be turned off using |
| the |
| .B -i |
| or |
| .B --independent |
| option, so that the blocks can be decompressed |
| independently for partial error recovery or for random access. |
| .PP |
| Decompression can't be parallelized, at least not without specially prepared |
| deflate streams for that purpose. As a result, |
| .I pigz |
| uses a single thread |
| (the main thread) for decompression, but will create three other threads for |
| reading, writing, and check calculation, which can speed up decompression |
| under some circumstances. Parallel decompression can be turned off by |
| specifying one process |
| ( |
| .B -dp 1 |
| or |
| .B -tp 1 |
| ). |
| .PP |
| Compressed files can be restored to their original form using |
| .I pigz -d |
| or |
| .I unpigz. |
| |
| .SH OPTIONS |
| .TP |
| .B -# --fast --best |
| Regulate the speed of compression using the specified digit |
| .IR # , |
| where |
| .B \-1 |
| or |
| .B \-\-fast |
| indicates the fastest compression method (less compression) |
| and |
| .B \-9 |
| or |
| .B \-\-best |
| indicates the slowest compression method (best compression). |
| Level 0 is no compression. |
| .TP |
| .B -b --blocksize mmm |
| Set compression block size to mmmK (default 128KiB). |
| .TP |
| .B -c --stdout --to-stdout |
| Write all processed output to stdout (won't delete). |
| .TP |
| .B -d --decompress --uncompress |
| Decompress the compressed input. |
| .TP |
| .B -f --force |
| Force overwrite, compress .gz, links, and to terminal. |
| .TP |
| .B -h --help |
| Display a help screen and quit. |
| .TP |
| .B -i --independent |
| Compress blocks independently for damage recovery. |
| .TP |
| .B -k --keep |
| Do not delete original file after processing. |
| .TP |
| .B -K --zip |
| Compress to PKWare zip (.zip) single entry format. |
| .TP |
| .B -l --list |
| List the contents of the compressed input. |
| .TP |
| .B -L --license |
| Display the |
| .I pigz |
| license and quit. |
| .TP |
| .B -n --no-name |
| Do not store or restore file name in/from header. |
| .TP |
| .B -N --name |
| Store/restore file name and mod time in/from header. |
| .TP |
| .B -p --processes n |
| Allow up to n processes (default is the number of online processors) |
| .TP |
| .B -q --quiet --silent |
| Print no messages, even on error. |
| .TP |
| .B -r --recursive |
| Process the contents of all subdirectories. |
| .TP |
| .B -R --rsyncable |
| Input-determined block locations for rsync. |
| .TP |
| .B -S --suffix .sss |
| Use suffix .sss instead of .gz (for compression). |
| .TP |
| .B -t --test |
| Test the integrity of the compressed input. |
| .TP |
| .B -T --no-time |
| Do not store or restore mod time in/from header. |
| .TP |
| .B -v --verbose |
| Provide more verbose output. |
| .TP |
| .B -V --version |
| Show the version of pigz. |
| .TP |
| .B -z --zlib |
| Compress to zlib (.zz) instead of gzip format. |
| .TP |
| .B -- |
| All arguments after "--" are treated as file names (for names that start with "-") |
| .SH "COPYRIGHT NOTICE" |
| This software is provided 'as-is', without any express or implied |
| warranty. In no event will the author be held liable for any damages |
| arising from the use of this software. |
| .PP |
| Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 Mark Adler <madler@alumni.caltech.edu> |