Scroll to navigation

PDLZIP(1) User Commands PDLZIP(1)


pdlzip - reduces the size of files


pdlzip [options] [files]


Pdlzip is a permissively licensed implementation of the lzip data compressor, intended for those who can't distribute (or even use) GPL licensed Free Software. The name of pdlzip comes from 'public domain lzip'. Pdlzip is written in C and is (hope)fully compatible with lzip 1.4 or newer.

Lzip is a lossless data compressor with a user interface similar to the one of gzip or bzip2. Lzip uses a simplified form of the 'Lempel-Ziv-Markov chain-Algorithm' (LZMA) stream format and provides a 3 factor integrity checking to maximize interoperability and optimize safety. Lzip can compress about as fast as gzip (lzip -0) or compress most files more than bzip2 (lzip -9). Decompression speed is intermediate between gzip and bzip2. Lzip is better than gzip and bzip2 from a data recovery perspective. Lzip has been designed, written, and tested with great care to replace gzip and bzip2 as the standard general-purpose compressed format for unix-like systems.

Pdlzip is also able to decompress legacy lzma-alone (.lzma) files. Lzma-alone is a very bad format; it is essentially a raw LZMA stream. If you keep any lzma-alone files, it is advisable to recompress them to lzip format. Lziprecover can convert some lzma-alone files to lzip format without recompressing.


display this help and exit
output version information and exit
exit with error status if trailing data
write to standard output, keep input files
overwrite existing output files
force re-compression of compressed files
keep (don't delete) input files
set match length limit in bytes [36]
write to <file>, keep input files
suppress all messages
set dictionary size limit in bytes [8 MiB]
test compressed file integrity
be verbose (a 2nd -v gives more)
-0 .. -9
set compression level [default 6]
alias for -0
alias for -9
allow trailing data seeming corrupt header

If no file names are given, or if a file is '-', pdlzip compresses or decompresses from standard input to standard output. Numbers may be followed by a multiplier: k = kB = 10^3 = 1000, Ki = KiB = 2^10 = 1024, M = 10^6, Mi = 2^20, G = 10^9, Gi = 2^30, etc... Dictionary sizes 12 to 27 are interpreted as powers of two, meaning 2^12 to 2^27 bytes.

The bidimensional parameter space of LZMA can't be mapped to a linear scale optimal for all files. If your files are large, very repetitive, etc, you may need to use the options --dictionary-size and --match-length directly to achieve optimal performance. For example, -9m64 usually compresses executables more (and faster) than -9.

To extract all the files from archive 'foo.tar.lz', use the commands 'tar -xf foo.tar.lz' or 'pdlzip -cd foo.tar.lz | tar -xf -'.

Exit status: 0 for a normal exit, 1 for environmental problems (file not found, invalid flags, I/O errors, etc), 2 to indicate a corrupt or invalid input file, 3 for an internal consistency error (e.g., bug) which caused pdlzip to panic.

Pdlzip includes public domain compression/decompression code from the LZMA SDK (Software Development Kit) written by Igor Pavlov.


Report bugs to
Pdlzip home page:


Copyright © 2022 Antonio Diaz Diaz. Public Domain 2009 Igor Pavlov. License 2-clause BSD.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

January 2022 pdlzip 1.12