This is lzip.info, produced by makeinfo version 4.8 from lzip.texinfo. INFO-DIR-SECTION Data Compression START-INFO-DIR-ENTRY * Lzip: (lzip). A data compressor based on the LZMA algorithm. END-INFO-DIR-ENTRY  File: lzip.info, Node: Top, Next: Introduction, Up: (dir) Lzip **** This manual is for Lzip (version 1.3, 21 December 2008). * Menu: * Introduction:: Purpose and features of Lzip * Invoking Lzip:: Command line interface * File Format:: Detailed format of the compressed file * Lzdiff:: Comparing compressed files * Lzgrep:: Searching inside compressed files * Problems:: Reporting bugs * Concept Index:: Index of concepts Copyright (C) 2008 Antonio Diaz Diaz. This manual is free documentation: you have unlimited permission to copy, distribute and modify it.  File: lzip.info, Node: Introduction, Next: Invoking Lzip, Prev: Top, Up: Top 1 Introduction ************** Lzip is a lossless data compressor based on the LZMA (Lempel-Ziv-Markov chain-Algorithm) algorithm designed by Igor Pavlov. The high compression of LZMA comes from combining two basic, well-proven compression ideas: sliding dictionaries (i.e. LZ77/78), and markov models (i.e. the thing used by every compression algorithm that uses a range encoder or similar order-0 entropy coder as its last stage) with segregation of contexts according to what the bits are used for. Lzip is not a replacement for gzip or bzip2, but a complement; which one is best to use depends on user's needs. Gzip is the fastest and most widely used. Bzip2 compresses better than gzip but is slower, both compressing and decompressing. Lzip decompresses almost as fast as gzip and compresses better than bzip2, but requires more memory and time during compression. These features make lzip well suited for software distribution and data archival. The maximum amount of memory required for compression is about 6 times the dictionary size limit. For decompression is a little more than the dictionary size really used. Lzip will automatically use the smallest possible dictionary size for each file without exceeding the given limit. It is important to appreciate that the decompression memory requirement is affected at compression time by the choice of dictionary size limit. Lzip has a user interface similar to the one of gzip or bzip2. It replaces every file given in the command line with a compressed version of itself, with the name "original_name.lz". Each compressed file has the same modification date, permissions, and, when possible, ownership as the corresponding original, so that these properties can be correctly restored at decompression time. If no file names are specified, lzip compresses (or decompresses) from standard input to standard output. In this case, lzip will decline to write compressed output to a terminal, as this would be entirely incomprehensible and therefore pointless. Lzip will correctly decompress a file which is the concatenation of two or more compressed files. The result is the concatenation of the corresponding uncompressed files. Integrity testing of concatenated compressed files is also supported. Lzip attempts to guess the name for the decompressed file from that of the compressed file as follows: filename.lz becomes filename filename.tlz becomes filename.tar anyothername becomes anyothername.out As a self-check for your protection, lzip stores in the file trailer the 32-bit CRC of the original file and the size of the original file, to make sure that the decompressed version of the file is identical to the original. This guards against corruption of the compressed data, and against undetected bugs in lzip (hopefully very unlikely). The chances of data corruption going undetected are microscopic, less than one chance in 4000 million for each file processed. Be aware, though, that the check occurs upon decompression, so it can only tell you that something is wrong. It can't help you recover the original uncompressed data. Return values: 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 (eg, bug) which caused lzip to panic.  File: lzip.info, Node: Invoking Lzip, Next: File Format, Prev: Introduction, Up: Top 2 Invoking Lzip *************** The format for running lzip is: lzip [OPTIONS] [FILES] Lzip supports the following options: `--help' `-h' Print an informative help message describing the options and exit. `--version' `-V' Print the version number of lzip on the standard output and exit. `--stdout' `-c' Compress or decompress to standard output. `--decompress' `-d' Decompress. `--force' `-f' Force overwrite of output file. `--keep' `-k' Keep (don't delete) input files during compression or decompression. `--match-length=LENGTH' `-m LENGTH' Set the match length limit in bytes. Valid values range from 5 to 273. Larger values usually give better compression ratios but longer compression times. `--quiet' `-q' Quiet operation. Suppress all messages. `--dictionary-size=SIZE' `-s SIZE' Set the dictionary size limit in bytes. Dictionary size is always a power of two. You may specify it as the number of bits to use or as a size between 4KiB and 512MiB. If the specified size is not a power of two, it is rounded upwards. Lzip will use the smallest possible dictionary size for each file without exceeding this limit. `--test' `-t' Check integrity of the specified file(s), but don't decompress them. This really performs a trial decompression and throws away the result. `--verbose' `-v' Verbose mode. Show the compression ratio for each file processed. Further -v's increase the verbosity level. `--compress' `-z' Compress. `-1 .. -9' Set the compression parameters (dictionary size and match length limit) as shown in the table below. These options have no effect when decompressing. Level Dictionary size Match length limit -1 4MiB 10 bytes -2 4MiB 12 bytes -3 4MiB 16 bytes -4 4MiB 32 bytes -5 4MiB 64 bytes -6 8MiB 64 bytes -7 16MiB 64 bytes -8 16MiB 128 bytes -9 32MiB 273 bytes `--fast' `--best' Aliases for GNU gzip compatibility. Numbers given as arguments to options may be followed by a multiplier and an optional `B' for "byte". Table of SI and binary prefixes (unit multipliers): Prefix Value | Prefix Value k kilobyte (10^3 = 1000) | Ki kibibyte (2^10 = 1024) M megabyte (10^6) | Mi mebibyte (2^20) G gigabyte (10^9) | Gi gibibyte (2^30) T terabyte (10^12) | Ti tebibyte (2^40) P petabyte (10^15) | Pi pebibyte (2^50) E exabyte (10^18) | Ei exbibyte (2^60) Z zettabyte (10^21) | Zi zebibyte (2^70) Y yottabyte (10^24) | Yi yobibyte (2^80)  File: lzip.info, Node: File Format, Next: Lzdiff, Prev: Invoking Lzip, Up: Top 3 File Format ************* A lzip file consists of a series of "members" (compressed data sets). The members simply appear one after another in the file, with no additional information before, between, or after them. Each member has the following structure: +---+---+---+---+----+----+=============+-+-+-+-+-+-+-+-+-+-+-+-+ | Magic bytes | VN | DB | Lzma stream | CRC32 | Data size | --> +---+---+---+---+----+----+=============+-+-+-+-+-+-+-+-+-+-+-+-+ (if VN >= 1) +-+-+-+-+-+-+-+-+ | Member size | +-+-+-+-+-+-+-+-+ All multibyte values are stored in little endian order. `Magic bytes' A four byte string, identifying the file type, with the value "LZIP". `VN (version number, 1 byte)' Just in case something needs to be modified in the future. Valid values are 0 and 1. `DB (dictionary bits, 1 byte)' Base 2 logarithm of the dictionary size. Valid values range from 12 to 29 (4KiB to 512MiB). `Lzma stream' The lzma stream, finished by an end of stream marker. Uses default values for encoder properties. `CRC32 (4 bytes)' CRC of the uncompressed original data. `Data size (8 bytes)' Size of the uncompressed original data. `Member size (8 bytes)' Total size of the member, including header and trailer. This facilitates safe recovery of undamaged members from multimember files.  File: lzip.info, Node: Lzdiff, Next: Lzgrep, Prev: File Format, Up: Top 4 Lzdiff ******** Lzdiff is a wrapper script around the diff and cmp commands that allows transparent comparison of any combination of compressed and non-compressed files. If any given file is compressed, its uncompressed content is used. The supported compressors are gzip, bzip2 and lzip. The format for running lzdiff is: lzdiff [OPTIONS] [DIFF_OPTIONS] FILE1 [FILE2] Compares FILE1 to FILE2. If FILE2 is omitted, compares FILE1 to the uncompressed contents of FILE1.[gz|bz2|lz] (depending on the default compressor selected). DIFF_OPTIONS are passed directly to diff or cmp. The exit status from diff or cmp is preserved. Lzdiff supports the following options: `--help' Print an informative help message describing the options and exit. `--version' Print the version number of lzdiff on the standard output and exit. `--gzip' Use gzip as default decompressor. `--bzip2' Use bzip2 as default decompressor. `--lzip' Use lzip as default decompressor (default). `--diff' Use diff to compare files (default). `--cmp' Use cmp to compare files. Lzdiff has the limitation that messages from the diff or cmp programs refer to temporary filenames instead of those specified.  File: lzip.info, Node: Lzgrep, Next: Problems, Prev: Lzdiff, Up: Top 5 Lzgrep ******** Lzgrep is a wrapper script around the grep command that allows transparent search on any combination of compressed and non-compressed files. If any given file is compressed, its uncompressed content is used. If a given file does not exist, lzgrep tries the compressed file name corresponding to the default compressor selected. The supported compressors are gzip, bzip2 and lzip. The format for running lzgrep is: lzgrep [OPTIONS] [GREP_OPTIONS] PATTERN [FILE]... GREP_OPTIONS are passed directly to grep. The exit status from grep is preserved. Lzgrep supports the following options: `--help' Print an informative help message describing the options and exit. `--version' Print the version number of lzgrep on the standard output and exit. `--gzip' Use gzip as default decompressor. `--bzip2' Use bzip2 as default decompressor. `--lzip' Use lzip as default decompressor (default).  File: lzip.info, Node: Problems, Next: Concept Index, Prev: Lzgrep, Up: Top 6 Reporting Bugs **************** There are probably bugs in lzip. There are certainly errors and omissions in this manual. If you report them, they will get fixed. If you don't, no one will ever know about them and they will remain unfixed for all eternity, if not longer. If you find a bug in lzip, please send electronic mail to . Include the version number, which you can find by running `lzip --version'.  File: lzip.info, Node: Concept Index, Prev: Problems, Up: Top Concept Index ************* [index] * Menu: * bugs: Problems. (line 6) * File Format: File Format. (line 6) * getting help: Problems. (line 6) * introduction: Introduction. (line 6) * invoking: Invoking Lzip. (line 6) * Lzdiff: Lzdiff. (line 6) * Lzgrep: Lzgrep. (line 6) * options: Invoking Lzip. (line 6) * usage: Invoking Lzip. (line 6) * version: Invoking Lzip. (line 6)  Tag Table: Node: Top226 Node: Introduction809 Node: Invoking Lzip4273 Node: File Format7323 Node: Lzdiff8793 Node: Lzgrep10105 Node: Problems11129 Node: Concept Index11649  End Tag Table