diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-03 00:00:18 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-03 00:00:18 +0000 |
commit | a540e256be85df29c60ac323d4460c6cde1d9350 (patch) | |
tree | d83a3a57112a9ec6966691569ecc2dfe78d82b81 /Master/texmf/doc/gzip/gzip.html | |
parent | 84a45ba83a3095eb4908d4325981b11fc1b31b05 (diff) |
trunk/Master/texmf/doc
git-svn-id: svn://tug.org/texlive/trunk@42 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf/doc/gzip/gzip.html')
-rw-r--r-- | Master/texmf/doc/gzip/gzip.html | 802 |
1 files changed, 802 insertions, 0 deletions
diff --git a/Master/texmf/doc/gzip/gzip.html b/Master/texmf/doc/gzip/gzip.html new file mode 100644 index 00000000000..1751211b85e --- /dev/null +++ b/Master/texmf/doc/gzip/gzip.html @@ -0,0 +1,802 @@ +<html lang="en"> +<head> +<title>Gzip User's Manual</title> +<meta http-equiv="Content-Type" content="text/html"> +<meta name="description" content="Gzip User's Manual"> +<meta name="generator" content="makeinfo 4.7"> +<link title="Top" rel="top" href="#Top"> +<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage"> +<meta http-equiv="Content-Style-Type" content="text/css"> +<style type="text/css"><!-- + pre.display { font-family:inherit } + pre.format { font-family:inherit } + pre.smalldisplay { font-family:inherit; font-size:smaller } + pre.smallformat { font-family:inherit; font-size:smaller } + pre.smallexample { font-size:smaller } + pre.smalllisp { font-size:smaller } + span.sc { font-variant:small-caps } + span.roman { font-family: serif; font-weight: normal; } +--></style> +</head> +<body> +<h1 class="settitle">Gzip User's Manual</h1> +<div class="node"> +<p><hr> +<a name="Top"></a>Up: <a rel="up" accesskey="u" href="#dir">(dir)</a> +<br> +</div> + +<ul class="menu"> +<li><a accesskey="1" href="#Copying">Copying</a>: How you can copy and share <code>gzip</code>. +<li><a accesskey="2" href="#Overview">Overview</a>: Preliminary information. +<li><a accesskey="3" href="#Sample">Sample</a>: Sample output from <code>gzip</code>. +<li><a accesskey="4" href="#Invoking-gzip">Invoking gzip</a>: How to run <code>gzip</code>. +<li><a accesskey="5" href="#Advanced-usage">Advanced usage</a>: Concatenated files. +<li><a accesskey="6" href="#Environment">Environment</a>: The <code>GZIP</code> environment variable +<li><a accesskey="7" href="#Tapes">Tapes</a>: Using <code>gzip</code> on tapes. +<li><a accesskey="8" href="#Problems">Problems</a>: Reporting bugs. +<li><a accesskey="9" href="#Concept-Index">Concept Index</a>: Index of concepts. +</ul> + +<div class="node"> +<p><hr> +<a name="Copying"></a>Next: <a rel="next" accesskey="n" href="#Overview">Overview</a>, +Up: <a rel="up" accesskey="u" href="#Top">Top</a> +<br> +</div> + +<h2 class="unnumbered">GNU GENERAL PUBLIC LICENSE</h2> + +<div align="center">Version 2, June 1991</div> + +<pre class="display"> Copyright © 1989, 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. +</pre> + <h3 class="unnumberedsec">Preamble</h3> + +<p>The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software—to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + <p>When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + <p>To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + <p>For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + <p>We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + <p>Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + <p>Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + <p>The precise terms and conditions for copying, distribution and +modification follow. + + <ol type=1 start=1> +<li>This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The “Program”, below, +refers to any such program or work, and a “work based on the Program” +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term “modification”.) Each licensee is addressed as “you”. + + <p>Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + <li>You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + + <p>You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + <li>You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + <ol type=a start=1> +<li>You must cause the modified files to carry prominent notices +stating that you changed the files and the date of any change. + + <li>You must cause any work that you distribute or publish, that in +whole or in part contains or is derived from the Program or any +part thereof, to be licensed as a whole at no charge to all third +parties under the terms of this License. + + <li>If the modified program normally reads commands interactively +when run, you must cause it, when started running for such +interactive use in the most ordinary way, to print or display an +announcement including an appropriate copyright notice and a +notice that there is no warranty (or else, saying that you provide +a warranty) and that users may redistribute the program under +these conditions, and telling the user how to view a copy of this +License. (Exception: if the Program itself is interactive but +does not normally print such an announcement, your work based on +the Program is not required to print an announcement.) + </ol> + + <p>These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + + <p>Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + + <p>In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + <li>You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + <ol type=a start=1> +<li>Accompany it with the complete corresponding machine-readable +source code, which must be distributed under the terms of Sections +1 and 2 above on a medium customarily used for software interchange; or, + + <li>Accompany it with a written offer, valid for at least three +years, to give any third party, for a charge no more than your +cost of physically performing source distribution, a complete +machine-readable copy of the corresponding source code, to be +distributed under the terms of Sections 1 and 2 above on a medium +customarily used for software interchange; or, + + <li>Accompany it with the information you received as to the offer +to distribute corresponding source code. (This alternative is +allowed only for noncommercial distribution and only if you +received the program in object code or executable form with such +an offer, in accord with Subsection b above.) + </ol> + + <p>The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + + <p>If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + <li>You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + <li>You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + <li>Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + <li>If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + + <p>If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + + <p>It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + + <p>This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + <li>If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + <li>The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + <p>Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and “any +later version”, you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + <li>If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + <li>BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + <li>IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + </ol> + +<h3 class="unnumberedsec">How to Apply These Terms to Your New Programs</h3> + +<p>If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + <p>To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the “copyright” line and a pointer to where the full notice is found. + +<pre class="smallexample"> <var>one line to give the program's name and an idea of what it does.</var> + Copyright (C) 19<var>yy</var> <var>name of author</var> + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License + as published by the Free Software Foundation; either version 2 + of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +</pre> + <p>Also add information on how to contact you by electronic and paper mail. + + <p>If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + +<pre class="smallexample"> Gnomovision version 69, Copyright (C) 19<var>yy</var> <var>name of author</var> + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details + type `show w'. This is free software, and you are welcome + to redistribute it under certain conditions; type `show c' + for details. +</pre> + <p>The hypothetical commands <span class="samp">show w</span> and <span class="samp">show c</span> should show +the appropriate parts of the General Public License. Of course, the +commands you use may be called something other than <span class="samp">show w</span> and +<span class="samp">show c</span>; they could even be mouse-clicks or menu items—whatever +suits your program. + + <p>You should also get your employer (if you work as a programmer) or your +school, if any, to sign a “copyright disclaimer” for the program, if +necessary. Here is a sample; alter the names: + +<pre class="example"> Yoyodyne, Inc., hereby disclaims all copyright + interest in the program `Gnomovision' + (which makes passes at compilers) written + by James Hacker. + + <var>signature of Ty Coon</var>, 1 April 1989 + Ty Coon, President of Vice +</pre> + <p>This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. + +<div class="node"> +<p><hr> +<a name="Overview"></a>Next: <a rel="next" accesskey="n" href="#Sample">Sample</a>, +Previous: <a rel="previous" accesskey="p" href="#Copying">Copying</a>, +Up: <a rel="up" accesskey="u" href="#Top">Top</a> +<br> +</div> + +<h2 class="chapter">1 Overview</h2> + +<p><a name="index-overview-1"></a> +<code>gzip</code> reduces the size of the named files using Lempel-Ziv coding +(LZ77). Whenever possible, each file is replaced by one with the +extension <span class="samp">.gz</span>, while keeping the same ownership modes, access and +modification times. (The default extension is <span class="samp">-gz</span> for VMS, +<span class="samp">z</span> for MSDOS, OS/2 FAT and Atari.) If no files are specified or +if a file name is "-", the standard input is compressed to the standard +output. <code>gzip</code> will only attempt to compress regular files. In +particular, it will ignore symbolic links. + + <p>If the new file name is too long for its file system, <code>gzip</code> +truncates it. <code>gzip</code> attempts to truncate only the parts of the +file name longer than 3 characters. (A part is delimited by dots.) If +the name consists of small parts only, the longest parts are truncated. +For example, if file names are limited to 14 characters, gzip.msdos.exe +is compressed to gzi.msd.exe.gz. Names are not truncated on systems +which do not have a limit on file name length. + + <p>By default, <code>gzip</code> keeps the original file name and timestamp in +the compressed file. These are used when decompressing the file with the +<span class="samp">-N</span> option. This is useful when the compressed file name was +truncated or when the time stamp was not preserved after a file +transfer. + + <p>Compressed files can be restored to their original form using <span class="samp">gzip -d</span> +or <code>gunzip</code> or <code>zcat</code>. If the original name saved in the +compressed file is not suitable for its file system, a new name is +constructed from the original one to make it legal. + + <p><code>gunzip</code> takes a list of files on its command line and replaces +each file whose name ends with <span class="samp">.gz</span>, <span class="samp">.z</span>, <span class="samp">.Z</span>, +<span class="samp">-gz</span>, <span class="samp">-z</span> or <span class="samp">_z</span> and which begins with the correct +magic number with an uncompressed file without the original extension. +<code>gunzip</code> also recognizes the special extensions <span class="samp">.tgz</span> and +<span class="samp">.taz</span> as shorthands for <span class="samp">.tar.gz</span> and <span class="samp">.tar.Z</span> +respectively. When compressing, <code>gzip</code> uses the <span class="samp">.tgz</span> +extension if necessary instead of truncating a file with a <span class="samp">.tar</span> +extension. + + <p><code>gunzip</code> can currently decompress files created by <code>gzip</code>, +<code>zip</code>, <code>compress</code> or <code>pack</code>. The detection of the input +format is automatic. When using the first two formats, <code>gunzip</code> +checks a 32 bit CRC (cyclic redundancy check). For <code>pack</code>, +<code>gunzip</code> checks the uncompressed length. The <code>compress</code> format +was not designed to allow consistency checks. However <code>gunzip</code> is +sometimes able to detect a bad <span class="samp">.Z</span> file. If you get an error when +uncompressing a <span class="samp">.Z</span> file, do not assume that the <span class="samp">.Z</span> file is +correct simply because the standard <code>uncompress</code> does not complain. +This generally means that the standard <code>uncompress</code> does not check +its input, and happily generates garbage output. The SCO <span class="samp">compress +-H</span> format (<code>lzh</code> compression method) does not include a CRC but +also allows some consistency checks. + + <p>Files created by <code>zip</code> can be uncompressed by <code>gzip</code> only if +they have a single member compressed with the 'deflation' method. This +feature is only intended to help conversion of <code>tar.zip</code> files to +the <code>tar.gz</code> format. To extract <code>zip</code> files with several +members, use <code>unzip</code> instead of <code>gunzip</code>. + + <p><code>zcat</code> is identical to <span class="samp">gunzip -c</span>. <code>zcat</code> +uncompresses either a list of files on the command line or its standard +input and writes the uncompressed data on standard output. <code>zcat</code> +will uncompress files that have the correct magic number whether they +have a <span class="samp">.gz</span> suffix or not. + + <p><code>gzip</code> uses the Lempel-Ziv algorithm used in <code>zip</code> and PKZIP. +The amount of compression obtained depends on the size of the input and +the distribution of common substrings. Typically, text such as source +code or English is reduced by 60-70%. Compression is generally much +better than that achieved by LZW (as used in <code>compress</code>), Huffman +coding (as used in <code>pack</code>), or adaptive Huffman coding +(<code>compact</code>). + + <p>Compression is always performed, even if the compressed file is slightly +larger than the original. The worst case expansion is a few bytes for +the <code>gzip</code> file header, plus 5 bytes every 32K block, or an expansion +ratio of 0.015% for large files. Note that the actual number of used +disk blocks almost never increases. <code>gzip</code> preserves the mode, +ownership and timestamps of files when compressing or decompressing. + +<div class="node"> +<p><hr> +<a name="Sample"></a>Next: <a rel="next" accesskey="n" href="#Invoking-gzip">Invoking gzip</a>, +Previous: <a rel="previous" accesskey="p" href="#Overview">Overview</a>, +Up: <a rel="up" accesskey="u" href="#Top">Top</a> +<br> +</div> + +<h2 class="chapter">2 Sample Output</h2> + +<p><a name="index-sample-2"></a> +Here are some realistic examples of running <code>gzip</code>. + + <p>This is the output of the command <span class="samp">gzip -h</span>: + +<pre class="example"> gzip 1.2.4 (18 Aug 93) + usage: gzip [-cdfhlLnNrtvV19] [-S suffix] [file ...] + -c --stdout write on standard output, keep original files unchanged + -d --decompress decompress + -f --force force overwrite of output file and compress links + -h --help give this help + -l --list list compressed file contents + -L --license display software license + -n --no-name do not save or restore the original name and time stamp + -N --name save or restore the original name and time stamp + -q --quiet suppress all warnings + -r --recursive operate recursively on directories + -S .suf --suffix .suf use suffix .suf on compressed files + -t --test test compressed file integrity + -v --verbose verbose mode + -V --version display version number + -1 --fast compress faster + -9 --best compress better + file... files to (de)compress. If none given, use standard input. +</pre> + <p>This is the output of the command <span class="samp">gzip -v texinfo.tex</span>: + +<pre class="example"> texinfo.tex: 71.6% -- replaced with texinfo.tex.gz +</pre> + <p>The following command will find all <code>gzip</code> files in the current +directory and subdirectories, and extract them in place without +destroying the original: + +<pre class="example"> find . -name '*.gz' -print | sed 's/^\(.*\)[.]gz$/gunzip < "&" > "\1"/' | sh +</pre> + <div class="node"> +<p><hr> +<a name="Invoking-gzip"></a>Next: <a rel="next" accesskey="n" href="#Advanced-usage">Advanced usage</a>, +Previous: <a rel="previous" accesskey="p" href="#Sample">Sample</a>, +Up: <a rel="up" accesskey="u" href="#Top">Top</a> +<br> +</div> + +<h2 class="chapter">3 Invoking <code>gzip</code></h2> + +<p><a name="index-invoking-3"></a><a name="index-options-4"></a> +The format for running the <code>gzip</code> program is: + +<pre class="example"> gzip <var>option</var> ... +</pre> + <p><code>gzip</code> supports the following options: + + <dl> +<dt><span class="samp">--stdout</span><dt><span class="samp">--to-stdout</span><dt><span class="samp">-c</span><dd>Write output on standard output; keep original files unchanged. +If there are several input files, the output consists of a sequence of +independently compressed members. To obtain better compression, +concatenate all input files before compressing them. + + <br><dt><span class="samp">--decompress</span><dt><span class="samp">--uncompress</span><dt><span class="samp">-d</span><dd>Decompress. + + <br><dt><span class="samp">--force</span><dt><span class="samp">-f</span><dd>Force compression or decompression even if the file has multiple links +or the corresponding file already exists, or if the compressed data +is read from or written to a terminal. If the input data is not in +a format recognized by <code>gzip</code>, and if the option <span class="samp">--stdout</span> is also +given, copy the input data without change to the standard output: let +<code>zcat</code> behave as <code>cat</code>. If <span class="samp">-f</span> is not given, and +when not running in the background, <code>gzip</code> prompts to verify +whether an existing file should be overwritten. + + <br><dt><span class="samp">--help</span><dt><span class="samp">-h</span><dd>Print an informative help message describing the options then quit. + + <br><dt><span class="samp">--list</span><dt><span class="samp">-l</span><dd>For each compressed file, list the following fields: + + <pre class="example"> compressed size: size of the compressed file + uncompressed size: size of the uncompressed file + ratio: compression ratio (0.0% if unknown) + uncompressed_name: name of the uncompressed file + </pre> + <p>The uncompressed size is given as <span class="samp">-1</span> for files not in <code>gzip</code> +format, such as compressed <span class="samp">.Z</span> files. To get the uncompressed size for +such a file, you can use: + + <pre class="example"> zcat file.Z | wc -c + </pre> + <p>In combination with the <span class="samp">--verbose</span> option, the following fields are also +displayed: + + <pre class="example"> method: compression method (deflate,compress,lzh,pack) + crc: the 32-bit CRC of the uncompressed data + date & time: time stamp for the uncompressed file + </pre> + <p>The crc is given as ffffffff for a file not in gzip format. + + <p>With <span class="samp">--verbose</span>, the size totals and compression ratio for all files +is also displayed, unless some sizes are unknown. With <span class="samp">--quiet</span>, +the title and totals lines are not displayed. + + <br><dt><span class="samp">--license</span><dt><span class="samp">-L</span><dd>Display the <code>gzip</code> license then quit. + + <br><dt><span class="samp">--no-name</span><dt><span class="samp">-n</span><dd>When compressing, do not save the original file name and time stamp by +default. (The original name is always saved if the name had to be +truncated.) When decompressing, do not restore the original file name +if present (remove only the <code>gzip</code> +suffix from the compressed file name) and do not restore the original +time stamp if present (copy it from the compressed file). This option +is the default when decompressing. + + <br><dt><span class="samp">--name</span><dt><span class="samp">-N</span><dd>When compressing, always save the original file name and time stamp; this +is the default. When decompressing, restore the original file name and +time stamp if present. This option is useful on systems which have +a limit on file name length or when the time stamp has been lost after +a file transfer. + + <br><dt><span class="samp">--quiet</span><dt><span class="samp">-q</span><dd>Suppress all warning messages. + + <br><dt><span class="samp">--recursive</span><dt><span class="samp">-r</span><dd>Travel the directory structure recursively. If any of the file names +specified on the command line are directories, <code>gzip</code> will descend +into the directory and compress all the files it finds there (or +decompress them in the case of <code>gunzip</code>). + + <br><dt><span class="samp">--suffix </span><var>suf</var><dt><span class="samp">-S </span><var>suf</var><dd>Use suffix <var>suf</var> instead of <span class="samp">.gz</span>. Any suffix can be +given, but suffixes other than <span class="samp">.z</span> and <span class="samp">.gz</span> should be +avoided to avoid confusion when files are transferred to other systems. +A null suffix forces gunzip to try decompression on all given files +regardless of suffix, as in: + + <pre class="example"> gunzip -S "" * (*.* for MSDOS) + </pre> + <p>Previous versions of gzip used the <span class="samp">.z</span> suffix. This was changed to +avoid a conflict with <code>pack</code>. + + <br><dt><span class="samp">--test</span><dt><span class="samp">-t</span><dd>Test. Check the compressed file integrity. + + <br><dt><span class="samp">--verbose</span><dt><span class="samp">-v</span><dd>Verbose. Display the name and percentage reduction for each file compressed. + + <br><dt><span class="samp">--version</span><dt><span class="samp">-V</span><dd>Version. Display the version number and compilation options, then quit. + + <br><dt><span class="samp">--fast</span><dt><span class="samp">--best</span><dt><span class="samp">-</span><var>n</var><dd>Regulate the speed of compression using the specified digit <var>n</var>, +where <span class="samp">-1</span> or <span class="samp">--fast</span> indicates the fastest compression +method (less compression) and <span class="samp">--best</span> or <span class="samp">-9</span> indicates the +slowest compression method (optimal compression). The default +compression level is <span class="samp">-6</span> (that is, biased towards high compression at +expense of speed). +</dl> + +<div class="node"> +<p><hr> +<a name="Advanced-usage"></a>Next: <a rel="next" accesskey="n" href="#Environment">Environment</a>, +Previous: <a rel="previous" accesskey="p" href="#Invoking-gzip">Invoking gzip</a>, +Up: <a rel="up" accesskey="u" href="#Top">Top</a> +<br> +</div> + +<h2 class="chapter">4 Advanced usage</h2> + +<p><a name="index-concatenated-files-5"></a> +Multiple compressed files can be concatenated. In this case, +<code>gunzip</code> will extract all members at once. If one member is +damaged, other members might still be recovered after removal of the +damaged member. Better compression can be usually obtained if all +members are decompressed and then recompressed in a single step. + + <p>This is an example of concatenating <code>gzip</code> files: + +<pre class="example"> gzip -c file1 > foo.gz + gzip -c file2 >> foo.gz +</pre> + <p>Then + +<pre class="example"> gunzip -c foo +</pre> + <p>is equivalent to + +<pre class="example"> cat file1 file2 +</pre> + <p>In case of damage to one member of a <span class="samp">.gz</span> file, other members can +still be recovered (if the damaged member is removed). However, +you can get better compression by compressing all members at once: + +<pre class="example"> cat file1 file2 | gzip > foo.gz +</pre> + <p>compresses better than + +<pre class="example"> gzip -c file1 file2 > foo.gz +</pre> + <p>If you want to recompress concatenated files to get better compression, do: + +<pre class="example"> zcat old.gz | gzip > new.gz +</pre> + <p>If a compressed file consists of several members, the uncompressed +size and CRC reported by the <span class="samp">--list</span> option applies to the last member +only. If you need the uncompressed size for all members, you can use: + +<pre class="example"> zcat file.gz | wc -c +</pre> + <p>If you wish to create a single archive file with multiple members so +that members can later be extracted independently, use an archiver such +as <code>tar</code> or <code>zip</code>. GNU <code>tar</code> supports the <span class="samp">-z</span> +option to invoke <code>gzip</code> transparently. <code>gzip</code> is designed as a +complement to <code>tar</code>, not as a replacement. + +<div class="node"> +<p><hr> +<a name="Environment"></a>Next: <a rel="next" accesskey="n" href="#Tapes">Tapes</a>, +Previous: <a rel="previous" accesskey="p" href="#Advanced-usage">Advanced usage</a>, +Up: <a rel="up" accesskey="u" href="#Top">Top</a> +<br> +</div> + +<h2 class="chapter">5 Environment</h2> + +<p><a name="index-Environment-6"></a> +The environment variable <code>GZIP</code> can hold a set of default options for +<code>gzip</code>. These options are interpreted first and can be overwritten by +explicit command line parameters. For example: + +<pre class="example"> for sh: GZIP="-8v --name"; export GZIP + for csh: setenv GZIP "-8v --name" + for MSDOS: set GZIP=-8v --name +</pre> + <p>On Vax/VMS, the name of the environment variable is <code>GZIP_OPT</code>, to +avoid a conflict with the symbol set for invocation of the program. + +<div class="node"> +<p><hr> +<a name="Tapes"></a>Next: <a rel="next" accesskey="n" href="#Problems">Problems</a>, +Previous: <a rel="previous" accesskey="p" href="#Environment">Environment</a>, +Up: <a rel="up" accesskey="u" href="#Top">Top</a> +<br> +</div> + +<h2 class="chapter">6 Using <code>gzip</code> on tapes</h2> + +<p><a name="index-tapes-7"></a> +When writing compressed data to a tape, it is generally necessary to pad +the output with zeroes up to a block boundary. When the data is read and +the whole block is passed to <code>gunzip</code> for decompression, +<code>gunzip</code> detects that there is extra trailing garbage after the +compressed data and emits a warning by default. You have to use the +<span class="samp">--quiet</span> option to suppress the warning. This option can be set in the +<code>GZIP</code> environment variable, as in: + +<pre class="example"> for sh: GZIP="-q" tar -xfz --block-compress /dev/rst0 + for csh: (setenv GZIP "-q"; tar -xfz --block-compress /dev/rst0) +</pre> + <p>In the above example, <code>gzip</code> is invoked implicitly by the <span class="samp">-z</span> +option of GNU <code>tar</code>. Make sure that the same block size (<span class="samp">-b</span> +option of <code>tar</code>) is used for reading and writing compressed data on +tapes. (This example assumes you are using the GNU version of +<code>tar</code>.) + +<div class="node"> +<p><hr> +<a name="Problems"></a>Next: <a rel="next" accesskey="n" href="#Concept-Index">Concept Index</a>, +Previous: <a rel="previous" accesskey="p" href="#Tapes">Tapes</a>, +Up: <a rel="up" accesskey="u" href="#Top">Top</a> +<br> +</div> + +<h2 class="chapter">7 Reporting Bugs</h2> + +<p><a name="index-bugs-8"></a> +If you find a bug in <code>gzip</code>, please send electronic mail to +<span class="samp">bug-gzip@gnu.org</span><!-- /@w -->. Include the version number, +which you can find by running <span class="samp">gzip -V</span><!-- /@w -->. Also include in your +message the hardware and operating system, the compiler used to compile +<code>gzip</code>, +a description of the bug behavior, and the input to <code>gzip</code> that triggered +the bug. + +<div class="node"> +<p><hr> +<a name="Concept-Index"></a>Previous: <a rel="previous" accesskey="p" href="#Problems">Problems</a>, +Up: <a rel="up" accesskey="u" href="#Top">Top</a> +<br> +</div> + +<h2 class="unnumbered">Concept Index</h2> + +<ul class="index-cp" compact> +<li><a href="#index-bugs-8">bugs</a>: <a href="#Problems">Problems</a></li> +<li><a href="#index-concatenated-files-5">concatenated files</a>: <a href="#Advanced-usage">Advanced usage</a></li> +<li><a href="#index-Environment-6">Environment</a>: <a href="#Environment">Environment</a></li> +<li><a href="#index-invoking-3">invoking</a>: <a href="#Invoking-gzip">Invoking gzip</a></li> +<li><a href="#index-options-4">options</a>: <a href="#Invoking-gzip">Invoking gzip</a></li> +<li><a href="#index-overview-1">overview</a>: <a href="#Overview">Overview</a></li> +<li><a href="#index-sample-2">sample</a>: <a href="#Sample">Sample</a></li> +<li><a href="#index-tapes-7">tapes</a>: <a href="#Tapes">Tapes</a></li> +</ul> +<div class="contents"> +<h2>Table of Contents</h2> +<ul> +<li><a name="toc_Copying" href="#Copying">GNU GENERAL PUBLIC LICENSE</a> +<ul> +<li><a href="#Copying">Preamble</a> +<li><a href="#Copying">How to Apply These Terms to Your New Programs</a> +</li></ul> +<li><a name="toc_Overview" href="#Overview">1 Overview</a> +<li><a name="toc_Sample" href="#Sample">2 Sample Output</a> +<li><a name="toc_Invoking-gzip" href="#Invoking-gzip">3 Invoking <code>gzip</code></a> +<li><a name="toc_Advanced-usage" href="#Advanced-usage">4 Advanced usage</a> +<li><a name="toc_Environment" href="#Environment">5 Environment</a> +<li><a name="toc_Tapes" href="#Tapes">6 Using <code>gzip</code> on tapes</a> +<li><a name="toc_Problems" href="#Problems">7 Reporting Bugs</a> +<li><a name="toc_Concept-Index" href="#Concept-Index">Concept Index</a> +</li></ul> +</div> + +</body></html> + |