Merging upstream version 1.6~pre1.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
a9ce1f9ead
commit
d98841c4ec
18 changed files with 848 additions and 856 deletions
236
doc/clzip.info
236
doc/clzip.info
|
@ -1,5 +1,4 @@
|
|||
This is clzip.info, produced by makeinfo version 4.13 from
|
||||
clzip.texinfo.
|
||||
This is clzip.info, produced by makeinfo version 4.13+ from clzip.texi.
|
||||
|
||||
INFO-DIR-SECTION Data Compression
|
||||
START-INFO-DIR-ENTRY
|
||||
|
@ -12,7 +11,7 @@ File: clzip.info, Node: Top, Next: Introduction, Up: (dir)
|
|||
Clzip Manual
|
||||
************
|
||||
|
||||
This manual is for Clzip (version 1.5, 17 September 2013).
|
||||
This manual is for Clzip (version 1.6-pre1, 30 January 2014).
|
||||
|
||||
* Menu:
|
||||
|
||||
|
@ -25,7 +24,7 @@ This manual is for Clzip (version 1.5, 17 September 2013).
|
|||
* Concept index:: Index of concepts
|
||||
|
||||
|
||||
Copyright (C) 2010, 2011, 2012, 2013 Antonio Diaz Diaz.
|
||||
Copyright (C) 2010, 2011, 2012, 2013, 2014 Antonio Diaz Diaz.
|
||||
|
||||
This manual is free documentation: you have unlimited permission to
|
||||
copy, distribute and modify it.
|
||||
|
@ -37,10 +36,10 @@ File: clzip.info, Node: Introduction, Next: Algorithm, Prev: Top, Up: Top
|
|||
**************
|
||||
|
||||
Clzip is a lossless data compressor with a user interface similar to the
|
||||
one of gzip or bzip2. Clzip decompresses almost as fast as gzip and
|
||||
compresses more than bzip2, which makes it well suited for software
|
||||
distribution and data archiving. Clzip is a clean implementation of the
|
||||
LZMA algorithm.
|
||||
one of gzip or bzip2. Clzip decompresses almost as fast as gzip,
|
||||
compresses most files more than bzip2, and is better than both from a
|
||||
data recovery perspective. Clzip is a clean implementation of the LZMA
|
||||
algorithm.
|
||||
|
||||
Clzip uses the lzip file format; the files produced by clzip are
|
||||
fully compatible with lzip-1.4 or newer, and can be rescued with
|
||||
|
@ -48,17 +47,24 @@ lziprecover. Clzip is in fact a C language version of lzip, intended
|
|||
for embedded devices or systems lacking a C++ compiler.
|
||||
|
||||
The lzip file format is designed for long-term data archiving and
|
||||
provides very safe integrity checking. The member trailer stores the
|
||||
32-bit CRC of the original data, the size of the original data and the
|
||||
size of the member. These values, together with the value remaining in
|
||||
the range decoder and the end-of-stream marker, provide a 4 factor
|
||||
integrity checking which guarantees that the decompressed version of the
|
||||
data is identical to the original. This guards against corruption of the
|
||||
compressed data, and against undetected bugs in clzip (hopefully very
|
||||
unlikely). The chances of data corruption going undetected are
|
||||
microscopic. 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.
|
||||
provides very safe integrity checking. It is as simple as possible (but
|
||||
not simpler), so that with the only help of the lzip manual it would be
|
||||
possible for a digital archaeologist to extract the data from a lzip
|
||||
file long after quantum computers eventually render LZMA obsolete.
|
||||
Additionally lzip is copylefted, which guarantees that it will remain
|
||||
free forever.
|
||||
|
||||
The member trailer stores the 32-bit CRC of the original data, the
|
||||
size of the original data and the size of the member. These values,
|
||||
together with the value remaining in the range decoder and the
|
||||
end-of-stream marker, provide a 4 factor integrity checking which
|
||||
guarantees that the decompressed version of the data is identical to
|
||||
the original. This guards against corruption of the compressed data,
|
||||
and against undetected bugs in clzip (hopefully very unlikely). The
|
||||
chances of data corruption going undetected are microscopic. 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.
|
||||
|
||||
If you ever need to recover data from a damaged lzip file, try the
|
||||
lziprecover program. Lziprecover makes lzip files resistant to bit-flip
|
||||
|
@ -67,15 +73,26 @@ recovery capabilities, including error-checked merging of damaged copies
|
|||
of a file.
|
||||
|
||||
Clzip uses the same well-defined exit status values used by lzip and
|
||||
bzip2, which makes it safer when used in pipes or scripts than
|
||||
compressors returning ambiguous warning values, like gzip.
|
||||
bzip2, which makes it safer than compressors returning ambiguous warning
|
||||
values (like gzip) when it is used as a back end for tar or zutils.
|
||||
|
||||
Clzip 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. Clzip is able to read from
|
||||
some types of non regular files if the `--stdout' option is specified.
|
||||
When compressing, clzip replaces every file given in the command line
|
||||
with a compressed version of itself, with the name "original_name.lz".
|
||||
When decompressing, clzip 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
|
||||
|
||||
(De)compressing a file is much like copying or moving it; therefore
|
||||
clzip preserves the access and modification dates, permissions, and,
|
||||
when possible, ownership of the file just as "cp -p" does. (If the user
|
||||
ID or the group ID can't be duplicated, the file permission bits
|
||||
S_ISUID and S_ISGID are cleared).
|
||||
|
||||
Clzip is able to read from some types of non regular files if the
|
||||
'--stdout' option is specified.
|
||||
|
||||
If no file names are specified, clzip compresses (or decompresses)
|
||||
from standard input to standard output. In this case, clzip will
|
||||
|
@ -100,21 +117,14 @@ large, about 64 PiB each.
|
|||
The amount of memory required for compression is about 1 or 2 times
|
||||
the dictionary size limit (1 if input file size is less than dictionary
|
||||
size limit, else 2) plus 9 times the dictionary size really used. The
|
||||
amount of memory required for decompression is only a few tens of KiB
|
||||
larger than the dictionary size really used.
|
||||
amount of memory required for decompression is about 46 kB larger than
|
||||
the dictionary size really used.
|
||||
|
||||
Clzip will automatically use the smallest possible dictionary size
|
||||
without exceeding the given limit. Keep in mind that the decompression
|
||||
memory requirement is affected at compression time by the choice of
|
||||
dictionary size limit.
|
||||
|
||||
When decompressing, clzip 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
|
||||
|
||||
|
||||
File: clzip.info, Node: Algorithm, Next: Invoking clzip, Prev: Introduction, Up: Top
|
||||
|
||||
|
@ -160,7 +170,7 @@ price represents the number of output bits produced.
|
|||
6) The range encoder encodes the sequence produced by the main
|
||||
encoder and sends the produced bytes to the output stream.
|
||||
|
||||
7) Go back to step 3 until the input data is finished or until the
|
||||
7) Go back to step 3 until the input data are finished or until the
|
||||
member or volume size limits are reached.
|
||||
|
||||
8) The range encoder is flushed.
|
||||
|
@ -188,67 +198,67 @@ The format for running clzip is:
|
|||
|
||||
Clzip supports the following options:
|
||||
|
||||
`-h'
|
||||
`--help'
|
||||
'-h'
|
||||
'--help'
|
||||
Print an informative help message describing the options and exit.
|
||||
|
||||
`-V'
|
||||
`--version'
|
||||
'-V'
|
||||
'--version'
|
||||
Print the version number of clzip on the standard output and exit.
|
||||
|
||||
`-b BYTES'
|
||||
`--member-size=BYTES'
|
||||
'-b BYTES'
|
||||
'--member-size=BYTES'
|
||||
Set the member size limit to BYTES. A small member size may
|
||||
degrade compression ratio, so use it only when needed. Valid values
|
||||
range from 100 kB to 64 PiB. Defaults to 64 PiB.
|
||||
|
||||
`-c'
|
||||
`--stdout'
|
||||
'-c'
|
||||
'--stdout'
|
||||
Compress or decompress to standard output. Needed when reading
|
||||
from a named pipe (fifo) or from a device. Use it to recover as
|
||||
much of the uncompressed data as possible when decompressing a
|
||||
corrupt file.
|
||||
|
||||
`-d'
|
||||
`--decompress'
|
||||
'-d'
|
||||
'--decompress'
|
||||
Decompress.
|
||||
|
||||
`-f'
|
||||
`--force'
|
||||
'-f'
|
||||
'--force'
|
||||
Force overwrite of output files.
|
||||
|
||||
`-F'
|
||||
`--recompress'
|
||||
Force recompression of files whose name already has the `.lz' or
|
||||
`.tlz' suffix.
|
||||
'-F'
|
||||
'--recompress'
|
||||
Force recompression of files whose name already has the '.lz' or
|
||||
'.tlz' suffix.
|
||||
|
||||
`-k'
|
||||
`--keep'
|
||||
'-k'
|
||||
'--keep'
|
||||
Keep (don't delete) input files during compression or
|
||||
decompression.
|
||||
|
||||
`-m BYTES'
|
||||
`--match-length=BYTES'
|
||||
'-m BYTES'
|
||||
'--match-length=BYTES'
|
||||
Set the match length limit in bytes. After a match this long is
|
||||
found, the search is finished. Valid values range from 5 to 273.
|
||||
Larger values usually give better compression ratios but longer
|
||||
compression times.
|
||||
|
||||
`-o FILE'
|
||||
`--output=FILE'
|
||||
When reading from standard input and `--stdout' has not been
|
||||
specified, use `FILE' as the virtual name of the uncompressed
|
||||
file. This produces a file named `FILE' when decompressing, a file
|
||||
named `FILE.lz' when compressing, and several files named
|
||||
`FILE00001.lz', `FILE00002.lz', etc, when compressing and
|
||||
'-o FILE'
|
||||
'--output=FILE'
|
||||
When reading from standard input and '--stdout' has not been
|
||||
specified, use 'FILE' as the virtual name of the uncompressed
|
||||
file. This produces a file named 'FILE' when decompressing, a file
|
||||
named 'FILE.lz' when compressing, and several files named
|
||||
'FILE00001.lz', 'FILE00002.lz', etc, when compressing and
|
||||
splitting the output in volumes.
|
||||
|
||||
`-q'
|
||||
`--quiet'
|
||||
'-q'
|
||||
'--quiet'
|
||||
Quiet operation. Suppress all messages.
|
||||
|
||||
`-s BYTES'
|
||||
`--dictionary-size=BYTES'
|
||||
'-s BYTES'
|
||||
'--dictionary-size=BYTES'
|
||||
Set the dictionary size limit in bytes. Valid values range from 4
|
||||
KiB to 512 MiB. Clzip will use the smallest possible dictionary
|
||||
size for each member without exceeding this limit. Note that
|
||||
|
@ -261,42 +271,42 @@ The format for running clzip is:
|
|||
requirement is affected at compression time by the choice of
|
||||
dictionary size limit.
|
||||
|
||||
`-S BYTES'
|
||||
`--volume-size=BYTES'
|
||||
'-S BYTES'
|
||||
'--volume-size=BYTES'
|
||||
Split the compressed output into several volume files with names
|
||||
`original_name00001.lz', `original_name00002.lz', etc, and set the
|
||||
'original_name00001.lz', 'original_name00002.lz', etc, and set the
|
||||
volume size limit to BYTES. Each volume is a complete, maybe
|
||||
multi-member, lzip file. A small volume size may degrade
|
||||
compression ratio, so use it only when needed. Valid values range
|
||||
from 100 kB to 4 EiB.
|
||||
|
||||
`-t'
|
||||
`--test'
|
||||
'-t'
|
||||
'--test'
|
||||
Check integrity of the specified file(s), but don't decompress
|
||||
them. This really performs a trial decompression and throws away
|
||||
the result. Use it together with `-v' to see information about
|
||||
the result. Use it together with '-v' to see information about
|
||||
the file.
|
||||
|
||||
`-v'
|
||||
`--verbose'
|
||||
'-v'
|
||||
'--verbose'
|
||||
Verbose mode.
|
||||
When compressing, show the compression ratio for each file
|
||||
processed. A second `-v' shows the progress of compression.
|
||||
processed. A second '-v' shows the progress of compression.
|
||||
When decompressing or testing, further -v's (up to 4) increase the
|
||||
verbosity level, showing status, compression ratio, dictionary
|
||||
size, and trailer contents (CRC, data size, member size).
|
||||
|
||||
`-1 .. -9'
|
||||
'-1 .. -9'
|
||||
Set the compression parameters (dictionary size and match length
|
||||
limit) as shown in the table below. Note that `-9' can be much
|
||||
slower than `-1'. These options have no effect when decompressing.
|
||||
limit) as shown in the table below. Note that '-9' can be much
|
||||
slower than '-1'. These options have no effect when decompressing.
|
||||
|
||||
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 `--match-length' and
|
||||
`--dictionary-size' options directly to achieve optimal
|
||||
performance. For example, `-9m64' usually compresses executables
|
||||
more (and faster) than `-9'.
|
||||
repetitive, etc, you may need to use the '--match-length' and
|
||||
'--dictionary-size' options directly to achieve optimal
|
||||
performance. For example, '-9m64' usually compresses executables
|
||||
more (and faster) than '-9'.
|
||||
|
||||
Level Dictionary size Match length limit
|
||||
-1 1 MiB 5 bytes
|
||||
|
@ -309,13 +319,13 @@ The format for running clzip is:
|
|||
-8 24 MiB 132 bytes
|
||||
-9 32 MiB 273 bytes
|
||||
|
||||
`--fast'
|
||||
`--best'
|
||||
'--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".
|
||||
and an optional 'B' for "byte".
|
||||
|
||||
Table of SI and binary prefixes (unit multipliers):
|
||||
|
||||
|
@ -370,15 +380,15 @@ additional information before, between, or after them.
|
|||
|
||||
All multibyte values are stored in little endian order.
|
||||
|
||||
`ID string'
|
||||
'ID string'
|
||||
A four byte string, identifying the lzip format, with the value
|
||||
"LZIP" (0x4C, 0x5A, 0x49, 0x50).
|
||||
|
||||
`VN (version number, 1 byte)'
|
||||
'VN (version number, 1 byte)'
|
||||
Just in case something needs to be modified in the future. 1 for
|
||||
now.
|
||||
|
||||
`DS (coded dictionary size, 1 byte)'
|
||||
'DS (coded dictionary size, 1 byte)'
|
||||
Lzip divides the distance between any two powers of 2 into 8
|
||||
equally spaced intervals, named "wedges". The dictionary size is
|
||||
calculated by taking a power of 2 (the base size) and substracting
|
||||
|
@ -390,18 +400,18 @@ additional information before, between, or after them.
|
|||
Example: 0xD3 = 2^19 - 6 * 2^15 = 512 KiB - 6 * 32 KiB = 320 KiB
|
||||
Valid values for dictionary size range from 4 KiB to 512 MiB.
|
||||
|
||||
`Lzma stream'
|
||||
'Lzma stream'
|
||||
The lzma stream, finished by an end of stream marker. Uses default
|
||||
values for encoder properties. See the lzip manual for a full
|
||||
description.
|
||||
|
||||
`CRC32 (4 bytes)'
|
||||
'CRC32 (4 bytes)'
|
||||
CRC of the uncompressed original data.
|
||||
|
||||
`Data size (8 bytes)'
|
||||
'Data size (8 bytes)'
|
||||
Size of the uncompressed original data.
|
||||
|
||||
`Member size (8 bytes)'
|
||||
'Member size (8 bytes)'
|
||||
Total size of the member, including header and trailer. This field
|
||||
acts as a distributed index, allows the verification of stream
|
||||
integrity, and facilitates safe recovery of undamaged members from
|
||||
|
@ -416,49 +426,49 @@ File: clzip.info, Node: Examples, Next: Problems, Prev: File format, Up: Top
|
|||
|
||||
WARNING! Even if clzip is bug-free, other causes may result in a corrupt
|
||||
compressed file (bugs in the system libraries, memory errors, etc).
|
||||
Therefore, if the data you are going to compress is important, give the
|
||||
`--keep' option to clzip and do not remove the original file until you
|
||||
Therefore, if the data you are going to compress are important, give the
|
||||
'--keep' option to clzip and do not remove the original file until you
|
||||
verify the compressed file with a command like
|
||||
`clzip -cd file.lz | cmp file -'.
|
||||
'clzip -cd file.lz | cmp file -'.
|
||||
|
||||
|
||||
Example 1: Replace a regular file with its compressed version `file.lz'
|
||||
Example 1: Replace a regular file with its compressed version 'file.lz'
|
||||
and show the compression ratio.
|
||||
|
||||
clzip -v file
|
||||
|
||||
|
||||
Example 2: Like example 1 but the created `file.lz' is multi-member
|
||||
Example 2: Like example 1 but the created 'file.lz' is multi-member
|
||||
with a member size of 1 MiB. The compression ratio is not shown.
|
||||
|
||||
clzip -b 1MiB file
|
||||
|
||||
|
||||
Example 3: Restore a regular file from its compressed version
|
||||
`file.lz'. If the operation is successful, `file.lz' is removed.
|
||||
'file.lz'. If the operation is successful, 'file.lz' is removed.
|
||||
|
||||
clzip -d file.lz
|
||||
|
||||
|
||||
Example 4: Verify the integrity of the compressed file `file.lz' and
|
||||
Example 4: Verify the integrity of the compressed file 'file.lz' and
|
||||
show status.
|
||||
|
||||
clzip -tv file.lz
|
||||
|
||||
|
||||
Example 5: Compress a whole floppy in /dev/fd0 and send the output to
|
||||
`file.lz'.
|
||||
'file.lz'.
|
||||
|
||||
clzip -c /dev/fd0 > file.lz
|
||||
|
||||
|
||||
Example 6: Decompress `file.lz' partially until 10 KiB of decompressed
|
||||
Example 6: Decompress 'file.lz' partially until 10 KiB of decompressed
|
||||
data are produced.
|
||||
|
||||
clzip -cd file.lz | dd bs=1024 count=10
|
||||
|
||||
|
||||
Example 7: Decompress `file.lz' partially from decompressed byte 10000
|
||||
Example 7: Decompress 'file.lz' partially from decompressed byte 10000
|
||||
to decompressed byte 15000 (5000 bytes are produced).
|
||||
|
||||
clzip -cd file.lz | dd bs=1000 skip=10 count=5
|
||||
|
@ -494,7 +504,7 @@ for all eternity, if not longer.
|
|||
|
||||
If you find a bug in clzip, please send electronic mail to
|
||||
<lzip-bug@nongnu.org>. Include the version number, which you can find
|
||||
by running `clzip --version'.
|
||||
by running 'clzip --version'.
|
||||
|
||||
|
||||
File: clzip.info, Node: Concept index, Prev: Problems, Up: Top
|
||||
|
@ -519,14 +529,14 @@ Concept index
|
|||
|
||||
|
||||
Tag Table:
|
||||
Node: Top212
|
||||
Node: Introduction914
|
||||
Node: Algorithm5091
|
||||
Node: Invoking clzip7590
|
||||
Node: File format13189
|
||||
Node: Examples15694
|
||||
Node: Problems17662
|
||||
Node: Concept index18188
|
||||
Node: Top210
|
||||
Node: Introduction921
|
||||
Node: Algorithm5557
|
||||
Node: Invoking clzip8057
|
||||
Node: File format13656
|
||||
Node: Examples16161
|
||||
Node: Problems18130
|
||||
Node: Concept index18656
|
||||
|
||||
End Tag Table
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue