---
name: "gzip"
section: "1"
platform: "macos"
package: "file_cmds"
version: "479"
release: "macOS 26.5"
platforms: ["linux", "freebsd", "openbsd", "macos"]
url: "https://new.carta.tech/gzip"
---

# gzip(1)

compression/decompression tool using Lempel-Ziv coding (LZ77)

## NAME

**gzip**, **gunzip**, **zcat** – compression/decompression tool using Lempel-Ziv coding (LZ77)

## SYNOPSIS

**gzip** \[**-cdfhkLlNnqrtVv**\] \[**-S** *suffix*\] *file*\[ *file* \[...\]\]

**gunzip** \[**-cfhkLNqrtVv**\] \[**-S** *suffix*\] *file*\[ *file* \[...\]\]

**zcat** \[**-fhV**\] *file*\[ *file* \[...\]\]

## DESCRIPTION

The **gzip** program compresses and decompresses files using Lempel-Ziv coding (LZ77). If no *files* are specified, **gzip** will compress from standard input, or decompress to standard output. When in compression mode, each *file* will be replaced with another file with the suffix, set by the **-S** *suffix* option, added, if possible.

In decompression mode, each *file* will be checked for existence, as will the file with the suffix added. Each *file* argument must contain a separate complete archive; when multiple *files* are indicated, each is decompressed in turn.

In the case of **gzcat** the resulting data is then concatenated in the manner of [cat(1)](/cat/1.md).

If invoked as **gunzip** then the **-d** option is enabled. If invoked as **zcat** or **gzcat** then both the **-c** and **-d** options are enabled.

This version of **gzip** is also capable of decompressing files compressed using [compress(1)](/compress/1.md), [bzip2(1)](/bzip2/1.md), *lzip*, or [xz(1)](/xz/1.md).

## OPTIONS

The following options are available:

- **-1**, **-****-fast**

  - **-2**, **-3**, **-4**, **-5**, **-6**, **-7**, **-8**

  - **-9**, **-****-best**

  These options change the compression level used, with the **-1** option being the fastest, with less compression, and the **-9** option being the slowest, with optimal compression. The default compression level is 6.

- **-c**, **-****-stdout**, **-****-to-stdout**

  This option specifies that output will go to the standard output stream, leaving files intact.

- **-d**, **-****-decompress**, **-****-uncompress**

  This option selects decompression rather than compression.

- **-f**, **-****-force**

  This option turns on force mode. This allows files with multiple links, symbolic links to regular files, overwriting of pre-existing files, reading from or writing to a terminal, and when combined with the **-c** option, allowing non-compressed data to pass through unchanged.

- **-h**, **-****-help**

  This option prints a usage summary and exits.

- **-k**, **-****-keep**

  This option prevents **gzip** from deleting input files after (de)compression.

- **-L**, **--license**

  This option prints **gzip** license.

- **-l**, **-****-list**

  This option displays information about the file's compressed and uncompressed size, ratio, uncompressed name. With the **-v** option, it also displays the compression method, CRC, date and time embedded in the file.

- **-N**, **-****-name**

  This option causes the stored filename in the input file to be used as the output file.

- **-n**, **-****-no-name**

  This option stops the filename and timestamp from being stored in the output file.

- **-q**, **-****-quiet**

  With this option, no warnings or errors are printed.

- **-r**, **-****-recursive**

  This option is used to **gzip** the files in a directory tree individually, using the [fts(3)](/fts/3.md) library.

- **-S** *suffix*, **-****-suffix** *suffix*

  This option changes the default suffix from .gz to *suffix*.

- **-t**, **-****-test**

  This option will test compressed files for integrity.

- **-V**, **-****-version**

  This option prints the version of the **gzip** program.

- **-v**, **-****-verbose**

  This option turns on verbose mode, which prints the compression ratio for each file compressed.

## ENVIRONMENT

If the environment variable GZIP is set, it is parsed as a white-space separated list of options handled before any options on the command line. Options on the command line will override anything in GZIP.

## EXIT STATUS

The **gzip** utility exits 0 on success, 1 on errors, and 2 if a warning occurs.

## SIGNALS

**gzip** responds to the following signals:

- SIGINFO

  Report progress to standard error.

## SEE ALSO

[bzip2(1)](/bzip2/1.md), [compress(1)](/compress/1.md), [xz(1)](/xz/1.md), [fts(3)](/fts/3.md), [zlib(3)](/zlib/3.md)

## HISTORY

The **gzip** program was originally written by Jean-loup Gailly, licensed under the GNU Public Licence. Matthew R. Green wrote a simple front end for NetBSD 1.3 distribution media, based on the freely re-distributable zlib library. It was enhanced to be mostly feature-compatible with the original GNU **gzip** program for NetBSD 2.0.

This implementation of **gzip** was ported based on the NetBSD **gzip** version 20181111, and first appeared in FreeBSD 7.0.

## AUTHORS

This implementation of **gzip** was written by Matthew R. Green ⟨*mrg@eterna.com.au*⟩ with unpack support written by Xin LI ⟨*delphij@FreeBSD.org*⟩.

## BUGS

According to RFC 1952, the recorded file size is stored in a 32-bit integer, therefore, it cannot represent files larger than 4GB. This limitation also applies to **-l** option of **gzip** utility.
