xref: /freebsd/usr.bin/gzip/gzip.1 (revision a64729f5077d77e13b9497cb33ecb3c82e606ee8)
1.\"	$NetBSD: gzip.1,v 1.31 2018/10/26 22:10:15 christos Exp $
2.\"
3.\" Copyright (c) 1997, 2003, 2004, 2008, 2009, 2015, 2017 Matthew R. Green
4.\" All rights reserved.
5.\"
6.\" Redistribution and use in source and binary forms, with or without
7.\" modification, are permitted provided that the following conditions
8.\" are met:
9.\" 1. Redistributions of source code must retain the above copyright
10.\"    notice, this list of conditions and the following disclaimer.
11.\" 2. Redistributions in binary form must reproduce the above copyright
12.\"    notice, this list of conditions and the following disclaimer in the
13.\"    documentation and/or other materials provided with the distribution.
14.\"
15.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
20.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
22.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
23.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25.\" SUCH DAMAGE.
26.Dd November 2, 2022
27.Dt GZIP 1
28.Os
29.Sh NAME
30.Nm gzip ,
31.Nm gunzip ,
32.Nm zcat
33.Nd compression/decompression tool using Lempel-Ziv coding (LZ77)
34.Sh SYNOPSIS
35.Nm
36.Op Fl cdfhkLlNnqrtVv
37.Op Fl S Ar suffix
38.Ar file
39.Oo
40.Ar file Oo ...
41.Oc
42.Oc
43.Nm gunzip
44.Op Fl cfhkLNqrtVv
45.Op Fl S Ar suffix
46.Ar file
47.Oo
48.Ar file Oo ...
49.Oc
50.Oc
51.Nm zcat
52.Op Fl fhV
53.Ar file
54.Oo
55.Ar file Oo ...
56.Oc
57.Oc
58.Sh DESCRIPTION
59The
60.Nm
61program compresses and decompresses files using Lempel-Ziv coding
62(LZ77).
63If no
64.Ar files
65are specified,
66.Nm
67will compress from standard input, or decompress to standard output.
68When in compression mode, each
69.Ar file
70will be replaced with another file with the suffix, set by the
71.Fl S Ar suffix
72option, added, if possible.
73.Pp
74In decompression mode, each
75.Ar file
76will be checked for existence, as will the file with the suffix
77added.
78Each
79.Ar file
80argument must contain a separate complete archive;
81when multiple
82.Ar files
83are indicated, each is decompressed in turn.
84.Pp
85In the case of
86.Nm gzcat
87the resulting data is then concatenated in the manner of
88.Xr cat 1 .
89.Pp
90If invoked as
91.Nm gunzip
92then the
93.Fl d
94option is enabled.
95If invoked as
96.Nm zcat
97or
98.Nm gzcat
99then both the
100.Fl c
101and
102.Fl d
103options are enabled.
104.Pp
105This version of
106.Nm
107is also capable of decompressing files compressed using
108.Xr compress 1 ,
109.Xr bzip2 1 ,
110.Ar lzip ,
111.Xr zstd 1 ,
112or
113.Xr xz 1 .
114.Sh OPTIONS
115The following options are available:
116.Bl -tag -width XXrXXXrecursiveX
117.It Fl 1 , Fl Fl fast
118.It Fl 2 , 3 , 4 , 5 , 6 , 7 , 8
119.It Fl 9 , Fl Fl best
120These options change the compression level used, with the
121.Fl 1
122option being the fastest, with less compression, and the
123.Fl 9
124option being the slowest, with optimal compression.
125The default compression level is 6.
126.It Fl c , Fl Fl stdout , Fl Fl to-stdout
127This option specifies that output will go to the standard output
128stream, leaving files intact.
129.It Fl d , Fl Fl decompress , Fl Fl uncompress
130This option selects decompression rather than compression.
131.It Fl f , Fl Fl force
132This option turns on force mode.
133This allows files with multiple links, symbolic links to regular files,
134overwriting of pre-existing files, reading from or writing to a terminal,
135and when combined with the
136.Fl c
137option, allowing non-compressed data to pass through unchanged.
138.It Fl h , Fl Fl help
139This option prints a usage summary and exits.
140.It Fl k , Fl Fl keep
141This option prevents
142.Nm
143from deleting input files after (de)compression.
144.It Fl L , -license
145This option prints
146.Nm
147license.
148.It Fl l , Fl Fl list
149This option displays information about the file's compressed and
150uncompressed size, ratio, uncompressed name.
151With the
152.Fl v
153option, it also displays the compression method, CRC, date and time
154embedded in the file.
155.It Fl N , Fl Fl name
156This option causes the stored filename in the input file to be used
157as the output file.
158.It Fl n , Fl Fl no-name
159This option stops the filename and timestamp from being stored in
160the output file.
161.It Fl q , Fl Fl quiet
162With this option, no warnings or errors are printed.
163.It Fl r , Fl Fl recursive
164This option is used to
165.Nm
166the files in a directory tree individually, using the
167.Xr fts 3
168library.
169.It Fl S Ar suffix , Fl Fl suffix Ar suffix
170This option changes the default suffix from .gz to
171.Ar suffix .
172.It Fl t , Fl Fl test
173This option will test compressed files for integrity.
174.It Fl V , Fl Fl version
175This option prints the version of the
176.Nm
177program.
178.It Fl v , Fl Fl verbose
179This option turns on verbose mode, which prints the compression
180ratio for each file compressed.
181.El
182.Sh ENVIRONMENT
183If the environment variable
184.Ev GZIP
185is set, it is parsed as a white-space separated list of options
186handled before any options on the command line.
187Options on the command line will override anything in
188.Ev GZIP .
189.Sh EXIT STATUS
190The
191.Nm
192utility exits 0 on success,
1931 on errors,
194and 2 if a warning occurs.
195.Sh SIGNALS
196.Nm
197responds to the following signals:
198.Bl -tag -width indent
199.It Dv SIGINFO
200Report progress to standard error.
201.El
202.Sh SEE ALSO
203.Xr bzip2 1 ,
204.Xr compress 1 ,
205.Xr zstd 1 ,
206.Xr xz 1 ,
207.Xr fts 3 ,
208.Xr zlib 3
209.Sh HISTORY
210The
211.Nm
212program was originally written by Jean-loup Gailly, licensed under
213the GNU Public Licence.
214Matthew R. Green wrote a simple front end for
215.Nx 1.3
216distribution media, based on the freely re-distributable zlib library.
217It was enhanced to be mostly feature-compatible with the original
218GNU
219.Nm
220program for
221.Nx 2.0 .
222.Pp
223This implementation of
224.Nm
225was ported based on the
226.Nx
227.Nm
228version 20181111,
229and first appeared in
230.Fx 7.0 .
231.Sh AUTHORS
232.An -nosplit
233This implementation of
234.Nm
235was written by
236.An Matthew R. Green Aq Mt mrg@eterna.com.au
237with unpack support written by
238.An Xin LI Aq Mt delphij@FreeBSD.org .
239.Sh BUGS
240According to RFC 1952, the recorded file size is stored in a 32-bit
241integer, therefore, it cannot represent files larger than 4GB.
242This limitation also applies to
243.Fl l
244option of
245.Nm
246utility.
247