bzip2(1)bzip2(1)NAMEbzme - recompress gziped, ziped, ... files into bzip2
SYNOPSIS
bzmz [ -fh ] [ filenames ... ]
DESCRIPTIONbzme recompresses files using the Burrows-Wheeler block sorting text compres‐
sion algorithm, and Huffman coding. Compression is generally considerably bet‐
ter than that achieved by more conventional LZ77/LZ78-based compressors, and
approaches the performance of the PPM family of statistical compressors.
bzme expects a list of file names to accompany the command-line flags. Each
file is replaced by a recompressed version of itself, with the name as
described in NEW NAMES section.
bzme won't overwrite by default existing files. If you want this to happen,
specify the -f flag.
NEW NAMES
bzip2 attempts to guess the filename for the decompressed file from that of the
compressed file as follows:
filename.tgz becomes filename.tar.bz2
filename.tar.gz becomes filename.tar.bz2
filename.zip becomes filename.tar.bz2
filename.z becomes filename.bz2
filename.Z becomes filename.bz2
filename.gz becomes filename.bz2
If the file does not end in one of the recognised endings, .tgz,
or .zip, bzme complains that it cannot guess if the name of the recompressed
file (ie it doesn't detect the original name to be a file compressed in a known
format)
OPTIONS-f Force overwrite of output files, even if -k is used. Normally, bzip2
will not overwrite existing output files.
-k Keep (don't delete) input files during compression or decompression.
SECURITYbzme will keep source file if there's an error while decompressing source file
or recompressing new file (or -k option is used of course).
bzme won't overwite the target file, even if -k option is used, if the source
file doesn't exists.
As a self-check for your protection, bzip2 uses 32-bit CRCs to make sure that
the decompressed version of a file is identical to the original. This offers
a better protection against corruption of the compressed data than offered by
gzip.
SPACE GAIN
Compression is only performed if the compressed file is smaller than the origi‐
nal: the original file is only removed if the newly compressed file is smaller,
else the new recompressed file is deleted.
Text (aka non binary) files're quite nearly always better compressed by bzip2
rather than gzip.
MEMORY VS SPACE TRADEOFF
There're two things :
Consumed CPU time
The needed cpu time is reduced by decompressing only one time. Files to
recompress were compressed through compress or gzip, used to be decom‐
pressed by gunzip -t in order to check that the original file was ok.
This resulted in passing two times the data in the decompression process
(one to check integrity, one to recompress). temporary space usage will
be zero since bzme will use a pipe rather than a temporary file as it
does in the early ages. Source error're detected through bash PIPESTA‐
TUS feature.
Occupied space
While recompressing files, if they were compressed through compress or
gzip, temporary space usage will be zero since bzme will use a pipe
rather than a temporary file as it did in the early ages. Source
error're detected through bash PIPESTATUS feature. Zip files're still
fully decompressed on disk.
As for the recompressed file and original file, only the smallest file
is kept.
RETURN VALUES
0 for a normal exit. 1 will be returned if an unknown option is passed.
BUGS
Bash getopt (which is used to analyse options) isn't gnu style aware, ie cmd
opt1 file1 file2 opt2 will result in ignoring opt2 option.
Solaris/SunOs du doesn't supports gnu option, and thus, bzme won't work on
those OSes unless GNU fileutils got installed. I had once a day patched bzme
to use right options for solaris but i had lost my changes.
So solaris remains unsupported.
SEE ALSObzip2(1), bunzip2(1)AUTHOR
Thierry Vignaud <tvignaud@mandrakesoft.com>, 1999-2002
bzip2(1)