Gzip Command in Linux
4 min read
Gzip is one of the most popular compression algorithms that allow you to reduce the size of a file and keep the original file mode, ownership, and timestamp.
Gzip also refers to the
.gz file format and the
gzip utility which is used to compress and decompress files.
In this tutorial, we will show you how to use the
gzip Command Syntax
The general syntax for the
gzip command is as follows:
gzip [OPTION]... [FILE]...
Gzip compresses only single files and creates a compressed file for each given file. By convention, the name of a file compressed with Gzip should end with either
If you want to compress multiple files or directory into one file, first you need to create a Tar archive and then compress the
.tar file with Gzip. A file that ends in
.tgz is a Tar archive compressed with Gzip.
Gzip is most often used to compress text files, Tar archives, and web pages. Do not use Gzip to compress images, audio, PDF documents, and other binary files as they are already compressed.
gzip can compress only regular files. The symbolic links are ignored.
Compressing Files with
To compress a single file invoke the
gzip command followed by the filename:
gzip will create a file
filename.gz and delete the original file.
gzip keeps the original file timestamp, mode, ownership, and name in the compressed file.
Keep the original file
If you want to keep the input (original) file, use the
gzip -k filename
Another option to keep the original file is to use the
-c option which tells
gzip to write on standard output and redirect the output to a file:
gzip -c filename > filename.gz
-v option if you want to see the percentage reduction and the names of the files that are being processed:
gzip -v filename
filename: 7.5% -- replaced with filename.gz
Compress multiple files
You can also pass multiple files as arguments to the command. For example, to compress the files named
file3, you would run the following command:
gzip file1 file2 file3
The command above will create three compressed files,
Compress all files in a directory
To compress all files in a given directory, use the
gzip -r directory
gzip will recursively traverse through the whole directory structure and compress all the files in the directory and it's subdirectories.
Change the compression level
gzip allows you to specify a range of compression levels, from 1 to 9.
--fast means fastest compression speed with minimal compression ratio,
--best indicates the slowest compression speed with maximum compression ratio. The default compression level is
For example, to get maximum compression, you would run:
gzip -9 filename
Compression is a CPU-intensive task, the higher the compression level, the longer the process takes.
Using standard input
To create a
.gz file from the stdin, pipe the output of the command to
gzip. For example, to create a Gzipped MySQL database backup you would run:
mysqldump database_name | gzip -c > database_name.sql.gz
The output of the
mysqldump command will be input for
Decompressing Files with
To decompress a
.gz file, use the
gzip -d filename.gz
Another command that you can use to decompress a Gzip file is
gunzip. This command is basically an alias to
You might find it easier to remember
Keep the compressed file
Same as when compressing a file, the
-k option tells
gzip to keep the input file, in this case, that is the compressed file:
gzip -dk filename.gz
Decompress multiple files
To decompress multiple files at once pass the filenames to
gzip as arguments:
gzip -d file1.gz file2.gz file3.gz
Decompress all files in a directory
When used with
gzip decompresses all files in a given directory recursively:
gzip -dr directory
List the Compressed File Contents
When used with the
gzip shows statistics about the given compressed files:
gzip -l filename
The output will include the uncompressed file name, the compressed and uncompressed size, and the compression ratio:
compressed uncompressed ratio uncompressed_name 130 107 7.5% filename
To get more information, add the
gzip -lv filename
method crc date time compressed uncompressed ratio uncompressed_name defla a9b9e776 Sep 3 21:20 130 107 7.5% filename
With Gzip, you can reduce the size of a given file. The
gzip command allows you to compress and decompress files.
For more information about the
gzip command, consult the Gnu gzip documentation page.
If you have any question, please leave a comment below.