⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 manual.texi

📁 高效率的一种通用压缩/解压程序
💻 TEXI
📖 第 1 页 / 共 5 页
字号:
\input texinfo  @c                                  -*- Texinfo -*-@setfilename bzip2.info@ignoreThis file documents bzip2 version 0.9.0c, and associated librarylibbzip2, written by Julian Seward (jseward@acm.org).Copyright (C) 1996-1998 Julian R SewardPermission is granted to make and distribute verbatim copies ofthis manual provided the copyright notice and this permission noticeare preserved on all copies.Permission is granted to copy and distribute translations of this manualinto another language, under the above conditions for verbatim copies.@end ignore@ifinfo@formatSTART-INFO-DIR-ENTRY* Bzip2: (bzip2).		A program and library for data compression.END-INFO-DIR-ENTRY@end format@end ifinfo@iftex@c @finalout@settitle bzip2 and libbzip2@titlepage@title bzip2 and libbzip2@subtitle a program and library for data compression@subtitle copyright (C) 1996-1998 Julian Seward@subtitle version 0.9.0c of 18 October 1998@author Julian Seward@end titlepage@end iftex@parindent 0mm@parskip 2mmThis program, @code{bzip2}, and associated library @code{libbzip2}, areCopyright (C) 1996-1998 Julian R Seward.  All rights reserved.Redistribution and use in source and binary forms, with or withoutmodification, are permitted provided that the following conditionsare met:@itemize @bullet@item   Redistributions of source code must retain the above copyright   notice, this list of conditions and the following disclaimer.@item   The origin of this software must not be misrepresented; you must    not claim that you wrote the original software.  If you use this    software in a product, an acknowledgment in the product    documentation would be appreciated but is not required.@item   Altered source versions must be plainly marked as such, and must   not be misrepresented as being the original software.@item   The name of the author may not be used to endorse or promote    products derived from this software without specific prior written    permission.@end itemizeTHIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESSOR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIEDWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSEARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANYDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIALDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTEGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESSINTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDINGNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THISSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.Julian Seward, Guildford, Surrey, UK.@code{jseward@@acm.org}@code{http://www.muraroa.demon.co.uk}@code{bzip2}/@code{libbzip2} version 0.9.0c of 18 October 1998.PATENTS: To the best of my knowledge, @code{bzip2} does not use any patentedalgorithms.  However, I do not have the resources available to carry outa full patent search.  Therefore I cannot give any guarantee of theabove statement.@node Overview, Implementation, Top, Top@chapter Introduction@code{bzip2}  compresses  files  using the Burrows-Wheeler block-sorting text compression algorithm,  and  Huffman  coding.Compression  is  generally  considerably  better than thatachieved by more conventional LZ77/LZ78-based compressors,and  approaches  the performance of the PPM family of statistical compressors.@code{bzip2} is built on top of @code{libbzip2}, a flexible libraryfor handling compressed data in the @code{bzip2} format.  This manualdescribes both how to use the program and how to work with the library interface.  Most of themanual is devoted to this library, not the program, which is good news if your interest is only in the program.Chapter 2 describes how to use @code{bzip2}; this is the only part you need to read if you just want to know how to operate the program.Chapter 3 describes the programming interfaces in detail, andChapter 4 records some miscellaneous notes which I thoughtought to be recorded somewhere.@chapter How to use @code{bzip2}This chapter contains a copy of the @code{bzip2} man page,and nothing else.@exampleNAME       bzip2, bunzip2 - a block-sorting file compressor, v0.9.0       bzcat - decompresses files to stdout       bzip2recover - recovers data from damaged bzip2 filesSYNOPSIS       bzip2 [ -cdfkstvzVL123456789 ] [ filenames ...  ]       bunzip2 [ -fkvsVL ] [ filenames ...  ]       bzcat [ -s ] [ filenames ...  ]       bzip2recover filenameDESCRIPTION       bzip2  compresses  files  using the Burrows-Wheeler block-       sorting text compression algorithm,  and  Huffman  coding.       Compression  is  generally  considerably  better than that       achieved by more conventional LZ77/LZ78-based compressors,       and  approaches  the performance of the PPM family of sta-       tistical compressors.       The command-line options are deliberately very similar  to       those of GNU Gzip, but they are not identical.       bzip2  expects  a list of file names to accompany the com-       mand-line flags.  Each file is replaced  by  a  compressed       version  of  itself,  with  the  name "original_name.bz2".       Each compressed file has the same  modification  date  and       permissions  as  the corresponding original, so that these       properties can  be  correctly  restored  at  decompression       time.  File name handling is naive in the sense that there       is no mechanism for preserving original file  names,  per-       missions  and  dates  in filesystems which lack these con-       cepts, or have serious file name length restrictions, such       as MS-DOS.       bzip2  and  bunzip2 will by default not overwrite existing       files; if you want this to happen, specify the -f flag.       If no file names  are  specified,  bzip2  compresses  from       standard  input  to  standard output.  In this case, bzip2       will decline to write compressed output to a terminal,  as       this  would  be  entirely  incomprehensible  and therefore       pointless.       bunzip2 (or bzip2 -d ) decompresses and restores all spec-       ified files whose names end in ".bz2".  Files without this       suffix are ignored.  Again, supplying no filenames  causes       decompression from standard input to standard output.       bunzip2 will correctly decompress a file which is the con-       catenation of two or more compressed files.  The result is       the concatenation of the corresponding uncompressed files.       Integrity testing (-t) of concatenated compressed files is       also supported.       You  can also compress or decompress files to the standard       output by giving the -c flag.  Multiple files may be  com-       pressed and decompressed like this.  The resulting outputs       are fed sequentially to stdout.  Compression  of  multiple       files  in this manner generates a stream containing multi-       ple compressed file representations.  Such a stream can be       decompressed  correctly  only  by  bzip2  version 0.9.0 or       later.  Earlier versions of bzip2 will stop  after  decom-       pressing the first file in the stream.       bzcat  (or bzip2 -dc ) decompresses all specified files to       the standard output.       Compression is always performed, even  if  the  compressed       file  is slightly larger than the original.  Files of less       than about one hundred bytes tend to get larger, since the       compression  mechanism  has  a  constant  overhead  in the       region of 50 bytes.  Random data (including the output  of       most  file  compressors)  is  coded at about 8.05 bits per       byte, giving an expansion of around 0.5%.       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 guards against corrup-       tion  of  the compressed data, and against undetected bugs       in bzip2 (hopefully very unlikely).  The chances  of  data       corruption  going  undetected  is  microscopic,  about one       chance in four billion for each file processed.  Be aware,       though,  that  the  check occurs upon decompression, so it       can only tell you that that something is wrong.  It  can't       help  you recover the original uncompressed data.  You can       use bzip2recover to  try  to  recover  data  from  damaged       files.       Return  values:  0  for a normal exit, 1 for environmental       problems (file not found, invalid flags, I/O errors,  &c),       2 to indicate a corrupt compressed file, 3 for an internal       consistency error (eg, bug) which caused bzip2 to panic.MEMORY MANAGEMENT       Bzip2 compresses large files in blocks.   The  block  size       affects  both  the  compression  ratio  achieved,  and the       amount of memory needed both for  compression  and  decom-       pression.   The flags -1 through -9 specify the block size       to be 100,000 bytes through 900,000  bytes  (the  default)       respectively.   At decompression-time, the block size used       for compression is read from the header of the  compressed       file, and bunzip2 then allocates itself just enough memory       to decompress the file.  Since block sizes are  stored  in       compressed  files,  it follows that the flags -1 to -9 are       irrelevant  to  and  so  ignored   during   decompression.       Compression  and decompression requirements, in bytes, can       be estimated as:             Compression:   400k + ( 7 x block size )             Decompression: 100k + ( 4 x block size ), or                            100k + ( 2.5 x block size )       Larger  block  sizes  give  rapidly  diminishing  marginal       returns;  most of the compression comes from the first two       or three hundred k of block size, a fact worth bearing  in       mind  when  using  bzip2  on  small  machines.  It is also       important to  appreciate  that  the  decompression  memory       requirement  is  set  at compression-time by the choice of       block size.       For files compressed with the  default  900k  block  size,       bunzip2  will require about 3700 kbytes to decompress.  To       support decompression of any file on a 4 megabyte machine,       bunzip2  has  an  option to decompress using approximately       half this amount of memory, about 2300 kbytes.  Decompres-       sion  speed  is also halved, so you should use this option       only where necessary.  The relevant flag is -s.       In general, try and use the largest block size memory con-       straints  allow,  since  that  maximises  the  compression       achieved.  Compression and decompression speed are  virtu-       ally unaffected by block size.       Another  significant point applies to files which fit in a       single block -- that  means  most  files  you'd  encounter       using  a  large  block  size.   The  amount of real memory       touched is proportional to the size of the file, since the       file  is smaller than a block.  For example, compressing a       file 20,000 bytes long with the flag  -9  will  cause  the       compressor  to  allocate  around 6700k of memory, but only       touch 400k + 20000 * 7 = 540 kbytes of it.  Similarly, the       decompressor  will  allocate  3700k  but only touch 100k +       20000 * 4 = 180 kbytes.       Here is a table which summarises the maximum memory  usage       for  different  block  sizes.   Also recorded is the total       compressed size for 14 files of the Calgary Text  Compres-       sion  Corpus totalling 3,141,622 bytes.  This column gives       some feel for how  compression  varies  with  block  size.       These  figures  tend to understate the advantage of larger       block sizes for larger files, since the  Corpus  is  domi-       nated by smaller files.                  Compress   Decompress   Decompress   Corpus           Flag     usage      usage       -s usage     Size            -1      1100k       500k         350k      914704            -2      1800k       900k         600k      877703            -3      2500k      1300k         850k      860338            -4      3200k      1700k        1100k      846899            -5      3900k      2100k        1350k      845160            -6      4600k      2500k        1600k      838626            -7      5400k      2900k        1850k      834096            -8      6000k      3300k        2100k      828642            -9      6700k      3700k        2350k      828642OPTIONS       -c --stdout              Compress or decompress to standard output.  -c will              decompress multiple files to stdout, but will  only              compress a single file to stdout.       -d --decompress              Force  decompression.  bzip2, bunzip2 and bzcat are              really the same program,  and  the  decision  about              what  actions to take is done on the basis of which              name is used.  This flag overrides that  mechanism,              and forces bzip2 to decompress.       -z --compress              The  complement  to -d: forces compression, regard-              less of the invokation name.       -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.       -f --force              Force overwrite of output files.   Normally,  bzip2              will not overwrite existing output files.       -k --keep              Keep  (don't delete) input files during compression              or decompression.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -