]> git.cworth.org Git - gzip/blob - gzip.doc
Avoid creating an undersized buffer for the hufts table.
[gzip] / gzip.doc
1 GZIP(1)                                                                GZIP(1)
2
3 NAME
4        gzip, gunzip, zcat - compress or expand files
5
6 SYNOPSIS
7        gzip [ -acdfhlLnNrtvV19 ] [-S suffix] [ name ...  ]
8        gunzip [ -acfhlLnNrtvV ] [-S suffix] [ name ...  ]
9        zcat [ -fhLV ] [ name ...  ]
10
11 DESCRIPTION
12        Gzip  reduces  the  size  of  the  named  files using Lempel-Ziv coding
13        (LZ77).  Whenever possible, each file  is  replaced  by  one  with  the
14        extension .gz, while keeping the same ownership modes, access and modi-
15        fication times.  (The default extension is -gz for VMS,  z  for  MSDOS,
16        OS/2  FAT, Windows NT FAT and Atari.)  If no files are specified, or if
17        a file name is "-", the standard input is compressed  to  the  standard
18        output.  Gzip will only attempt to compress regular files.  In particu-
19        lar, it will ignore symbolic links.
20
21        If the compressed file name is too long for its file system, gzip trun-
22        cates  it.   Gzip  attempts to truncate only the parts of the file name
23        longer than 3 characters.  (A part is delimited by dots.) If  the  name
24        consists  of  small  parts  only,  the longest parts are truncated. For
25        example, if file names are limited to 14 characters, gzip.msdos.exe  is
26        compressed to gzi.msd.exe.gz.  Names are not truncated on systems which
27        do not have a limit on file name length.
28
29        By default, gzip keeps the original file name and timestamp in the com-
30        pressed  file.  These  are used when decompressing the file with the -N
31        option. This is useful when the compressed file name was  truncated  or
32        when the time stamp was not preserved after a file transfer.
33
34        Compressed  files  can be restored to their original form using gzip -d
35        or gunzip or zcat.  If the original name saved in the  compressed  file
36        is not suitable for its file system, a new name is constructed from the
37        original one to make it legal.
38
39        gunzip takes a list of files on its command line and replaces each file
40        whose  name  ends with .gz, -gz, .z, -z, _z or .Z and which begins with
41        the correct magic number with an uncompressed file without the original
42        extension.  gunzip also recognizes the special extensions .tgz and .taz
43        as shorthands for .tar.gz and .tar.Z respectively.   When  compressing,
44        gzip  uses the .tgz extension if necessary instead of truncating a file
45        with a .tar extension.
46
47        gunzip can currently decompress files created by gzip,  zip,  compress,
48        compress  -H  or pack.  The detection of the input format is automatic.
49        When using the first two formats, gunzip checks a 32 bit CRC. For pack,
50        gunzip checks the uncompressed length. The standard compress format was
51        not designed to allow consistency checks. However gunzip  is  sometimes
52        able  to detect a bad .Z file. If you get an error when uncompressing a
53        .Z file, do not assume that the .Z file is correct simply  because  the
54        standard  uncompress  does  not complain. This generally means that the
55        standard uncompress does not check its  input,  and  happily  generates
56        garbage  output.   The  SCO compress -H format (lzh compression method)
57        does not include a CRC but also allows some consistency checks.
58
59        Files created by zip can be uncompressed by gzip only if  they  have  a
60        single  member  compressed with the 'deflation' method. This feature is
61        only intended to help conversion of tar.zip files to the tar.gz format.
62        To  extract  a zip file with a single member, use a command like gunzip
63        <foo.zip or gunzip -S .zip foo.zip.  To extract zip files with  several
64        members, use unzip instead of gunzip.
65
66        zcat  is  identical  to  gunzip  -c.   (On  some  systems,  zcat may be
67        installed as gzcat to preserve the original link  to  compress.)   zcat
68        uncompresses either a list of files on the command line or its standard
69        input and writes the uncompressed data on standard output.   zcat  will
70        uncompress files that have the correct magic number whether they have a
71        .gz suffix or not.
72
73        Gzip uses the Lempel-Ziv algorithm used in zip and PKZIP.   The  amount
74        of  compression  obtained depends on the size of the input and the dis-
75        tribution of common substrings.  Typically, text such as source code or
76        English  is  reduced  by  60-70%.  Compression is generally much better
77        than that achieved by LZW (as used in  compress),  Huffman  coding  (as
78        used in pack), or adaptive Huffman coding (compact).
79
80        Compression  is  always  performed,  even  if  the  compressed  file is
81        slightly larger than the original. The worst case expansion  is  a  few
82        bytes  for  the  gzip  file header, plus 5 bytes every 32K block, or an
83        expansion ratio of 0.015% for large files. Note that the actual  number
84        of  used  disk blocks almost never increases.  gzip preserves the mode,
85        ownership and timestamps of files when compressing or decompressing.
86
87        The gzip file format is specified in P. Deutsch, GZIP file format spec-
88        ification version 4.3, <ftp://ftp.isi.edu/in-notes/rfc1952.txt>, Inter-
89        net RFC 1952 (May 1996).  The zip deflation format is specified  in  P.
90        Deutsch,  DEFLATE  Compressed  Data  Format  Specification version 1.3,
91        <ftp://ftp.isi.edu/in-notes/rfc1951.txt>, Internet RFC 1951 (May 1996).
92
93 OPTIONS
94        -a --ascii
95               Ascii  text  mode: convert end-of-lines using local conventions.
96               This option is supported only  on  some  non-Unix  systems.  For
97               MSDOS, CR LF is converted to LF when compressing, and LF is con-
98               verted to CR LF when decompressing.
99
100        -c --stdout --to-stdout
101               Write output on standard output; keep original files  unchanged.
102               If  there  are  several  input  files,  the output consists of a
103               sequence of independently compressed members. To  obtain  better
104               compression,  concatenate  all  input  files  before compressing
105               them.
106
107        -d --decompress --uncompress
108               Decompress.
109
110        -f --force
111               Force compression or decompression even if the file has multiple
112               links  or  the corresponding file already exists, or if the com-
113               pressed data is read from or written to a terminal. If the input
114               data  is  not  in a format recognized by gzip, and if the option
115               --stdout is also given, copy the input data  without  change  to
116               the  standard  output:  let  zcat  behave  as cat.  If -f is not
117               given, and when not running in the background, gzip  prompts  to
118               verify whether an existing file should be overwritten.
119
120        -h --help
121               Display a help screen and quit.
122
123        -l --list
124               For each compressed file, list the following fields:
125
126                   compressed size: size of the compressed file
127                   uncompressed size: size of the uncompressed file
128                   ratio: compression ratio (0.0% if unknown)
129                   uncompressed_name: name of the uncompressed file
130
131               The  uncompressed size is given as -1 for files not in gzip for-
132               mat, such as compressed .Z files. To get the  uncompressed  size
133               for such a file, you can use:
134
135                   zcat file.Z | wc -c
136
137               In  combination  with the --verbose option, the following fields
138               are also displayed:
139
140                   method: compression method
141                   crc: the 32-bit CRC of the uncompressed data
142                   date & time: time stamp for the uncompressed file
143
144               The compression methods currently supported  are  deflate,  com-
145               press,  lzh  (SCO  compress  -H)  and pack.  The crc is given as
146               ffffffff for a file not in gzip format.
147
148               With --name, the uncompressed name,  date and  time   are  those
149               stored within the compress file if present.
150
151               With  --verbose,  the  size totals and compression ratio for all
152               files is also displayed, unless some  sizes  are  unknown.  With
153               --quiet, the title and totals lines are not displayed.
154
155        -L --license
156               Display the gzip license and quit.
157
158        -n --no-name
159               When  compressing,  do  not save the original file name and time
160               stamp by default. (The original name is always saved if the name
161               had  to  be  truncated.)  When decompressing, do not restore the
162               original file name if present (remove only the gzip suffix  from
163               the  compressed  file name) and do not restore the original time
164               stamp if present (copy it from the compressed file). This option
165               is the default when decompressing.
166
167        -N --name
168               When  compressing,  always  save the original file name and time
169               stamp; this is the  default.  When  decompressing,  restore  the
170               original  file  name  and  time stamp if present. This option is
171               useful on systems which have a limit on file name length or when
172               the time stamp has been lost after a file transfer.
173
174        -q --quiet
175               Suppress all warnings.
176
177        -r --recursive
178               Travel  the  directory structure recursively. If any of the file
179               names specified on the command line are directories,  gzip  will
180               descend  into  the directory and compress all the files it finds
181               there (or decompress them in the case of gunzip ).
182
183        -S .suf --suffix .suf
184               Use suffix .suf instead of .gz. Any suffix  can  be  given,  but
185               suffixes other than .z and .gz should be avoided to avoid confu-
186               sion when files are transferred to other systems.  A null suffix
187               forces  gunzip  to  try decompression on all given files regard-
188               less of suffix, as in:
189
190                   gunzip -S "" *       (*.* for MSDOS)
191
192               Previous versions of gzip used the .z suffix. This  was  changed
193               to avoid a conflict with pack(1).
194
195        -t --test
196               Test. Check the compressed file integrity.
197
198        -v --verbose
199               Verbose. Display the name and percentage reduction for each file
200               compressed or decompressed.
201
202        -V --version
203               Version. Display the version number and compilation options then
204               quit.
205
206        -# --fast --best
207               Regulate  the  speed of compression using the specified digit #,
208               where -1 or --fast  indicates  the  fastest  compression  method
209               (less  compression)  and -9 or --best indicates the slowest com-
210               pression method (best  compression).   The  default  compression
211               level is -6 (that is, biased towards high compression at expense
212               of speed).
213
214 ADVANCED USAGE
215        Multiple compressed files can be concatenated.  In  this  case,  gunzip
216        will extract all members at once. For example:
217
218              gzip -c file1  > foo.gz
219              gzip -c file2 >> foo.gz
220
221        Then
222
223              gunzip -c foo
224
225        is equivalent to
226
227              cat file1 file2
228
229        In  case of damage to one member of a .gz file, other members can still
230        be recovered (if the damaged member is removed). However, you  can  get
231        better compression by compressing all members at once:
232
233              cat file1 file2 | gzip > foo.gz
234
235        compresses better than
236
237              gzip -c file1 file2 > foo.gz
238
239        If you want to recompress concatenated files to get better compression,
240        do:
241
242              gzip -cd old.gz | gzip > new.gz
243
244        If a compressed file consists of several members, the uncompressed size
245        and  CRC reported by the --list option applies to the last member only.
246        If you need the uncompressed size for all members, you can use:
247
248              gzip -cd file.gz | wc -c
249
250        If you wish to create a single archive file with  multiple  members  so
251        that members can later be extracted independently, use an archiver such
252        as tar or zip. GNU tar supports the -z option to invoke gzip  transpar-
253        ently. gzip is designed as a complement to tar, not as a replacement.
254
255 ENVIRONMENT
256        The  environment  variable  GZIP  can hold a set of default options for
257        gzip.  These options are interpreted first and can  be  overwritten  by
258        explicit command line parameters. For example:
259              for sh:    GZIP="-8v --name"; export GZIP
260              for csh:   setenv GZIP "-8v --name"
261              for MSDOS: set GZIP=-8v --name
262
263        On  Vax/VMS, the name of the environment variable is GZIP_OPT, to avoid
264        a conflict with the symbol set for invocation of the program.
265
266 SEE ALSO
267        znew(1), zcmp(1), zmore(1), zforce(1), gzexe(1), zip(1), unzip(1), com-
268        press(1), pack(1), compact(1)
269
270        The gzip file format is specified in P. Deutsch, GZIP file format spec-
271        ification version 4.3, <ftp://ftp.isi.edu/in-notes/rfc1952.txt>, Inter-
272        net  RFC  1952 (May 1996).  The zip deflation format is specified in P.
273        Deutsch, DEFLATE Compressed  Data  Format  Specification  version  1.3,
274        <ftp://ftp.isi.edu/in-notes/rfc1951.txt>, Internet RFC 1951 (May 1996).
275
276 DIAGNOSTICS
277        Exit status is normally 0; if an error occurs, exit status is 1.  If  a
278        warning occurs, exit status is 2.
279
280        Usage: gzip [-cdfhlLnNrtvV19] [-S suffix] [file ...]
281               Invalid options were specified on the command line.
282
283        file: not in gzip format
284               The file specified to gunzip has not been compressed.
285
286        file: Corrupt input. Use zcat to recover some data.
287               The  compressed  file has been damaged. The data up to the point
288               of failure can be recovered using
289
290                     zcat file > recover
291
292        file: compressed with xx bits, can only handle yy bits
293               File was compressed (using LZW) by a  program  that  could  deal
294               with more bits than the decompress code on this machine.  Recom-
295               press the file with gzip, which compresses better and uses  less
296               memory.
297
298        file: already has .gz suffix -- no change
299               The  file  is assumed to be already compressed.  Rename the file
300               and try again.
301
302        file already exists; do you wish to overwrite (y or n)?
303               Respond "y" if you want the output file to be replaced;  "n"  if
304               not.
305
306        gunzip: corrupt input
307               A  SIGSEGV  violation  was detected which usually means that the
308               input file has been corrupted.
309
310        xx.x% Percentage of the input saved by compression.
311               (Relevant only for -v and -l.)
312
313        -- not a regular file or directory: ignored
314               When the input file is not a regular file or directory, (e.g.  a
315               symbolic link, socket, FIFO, device file), it is left unaltered.
316
317        -- has xx other links: unchanged
318               The input file has links; it is left unchanged.  See  ln(1)  for
319               more information. Use the -f flag to force compression of multi-
320               ply-linked files.
321
322 CAVEATS
323        When writing compressed data to a tape, it is  generally  necessary  to
324        pad  the  output  with  zeroes up to a block boundary. When the data is
325        read and the whole block is passed to gunzip for decompression,  gunzip
326        detects  that there is extra trailing garbage after the compressed data
327        and emits a warning by default. You have to use the --quiet  option  to
328        suppress  the  warning.  This option can be set in the GZIP environment
329        variable as in:
330          for sh:  GZIP="-q"  tar -xfz --block-compress /dev/rst0
331          for csh: (setenv GZIP -q; tar -xfz --block-compr /dev/rst0
332
333        In the above example, gzip is invoked implicitly by the  -z  option  of
334        GNU  tar. Make sure that the same block size (-b option of tar) is used
335        for reading and  writing  compressed  data  on  tapes.   (This  example
336        assumes you are using the GNU version of tar.)
337
338 BUGS
339        The  gzip  format  represents the input size modulo 2^32, so the --list
340        option reports incorrect uncompressed sizes and compression ratios  for
341        uncompressed  files  4 GB and larger.  To work around this problem, you
342        can use the following command to discover a large  uncompressed  file's
343        true size:
344
345              zcat file.gz | wc -c
346
347        The  --list  option reports sizes as -1 and crc as ffffffff if the com-
348        pressed file is on a non seekable media.
349
350        In some rare cases, the --best option gives worse compression than  the
351        default  compression  level  (-6). On some highly redundant files, com-
352        press compresses better than gzip.
353
354 COPYRIGHT NOTICE
355        Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
356        Copyright (C) 1992, 1993 Jean-loup Gailly
357
358        Permission is granted to make and distribute verbatim  copies  of  this
359        manual  provided  the  copyright  notice and this permission notice are
360        preserved on all copies.
361
362        Permission is granted to copy and distribute modified versions of  this
363        manual  under  the  conditions  for verbatim copying, provided that the
364        entire resulting derived work is distributed under the terms of a  per-
365        mission notice identical to this one.
366
367        Permission  is granted to copy and distribute translations of this man-
368        ual into another language, under the above conditions for modified ver-
369        sions,  except  that this permission notice may be stated in a transla-
370        tion approved by the Foundation.
371
372                                      local                             GZIP(1)