The Gzip is the popular compression algorithm to reduce the size of a file with keeping file in original mode, ownership and timestamp. It also known as the .gz
file format. The gzip
utility is used to compress and decompress the files. In this guide, we will show you how to use the gzip command.
gzip Command Syntax
The basic syntax for the gzip
command is as follows:
gzip [OPTION]... [FILE]...
Using gzip
, you can compress single file and generate compressed file for each file. The compressed file will be end with the either .gz
or .z
extension.
If your requirement is to compress multiple files or folders in to one file, you should first create a Tar archive file and need you can compress the .tar
file with Gzip
.
Usually, the Gzip is used to compress the text files, Tar archives, and web pages. It’s useless to use gzip
for compress images, audio, PDF documents, and other binary files as they are already compressed.
The regular files can be compressed by gzip and the symbolic links are ignored.
Compress Files with gzip
You can compress a single file using the gzip
command followed by the filename:
gzip filename
It will delete the original file and creates a filename.gz
file. Gzip keeps the original file timestamp, mode, ownership, and name in the compressed file.
Keep Original File
If you would like to keep the original file instead of delete after compression, use -k
option with gzip
command:
gzip -k filename
Verbose output
To see the percentage of reduction and the names of the files that are being processed, use the -v
option:
gzip -v filename
filename: 9.5% -- replaced with filename.gz
Compress multiple files
To compress the multiple files, pass multiple file names as arguments. For example, to compress the files named filename1
, filename2
, filename3
, you would run the following command:
gzip filename1 filename2 filename3
As an output the above command will create the three different files named with filename1.gz
, filename2.gz
, filename3.gz
.
Compress all files in a directory
To compress all files in a given directory, use the -r
option:
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 compression level
You can specify the range if compression levels from 1
to 9
. For fastest compression with minimal compression ratio, you can pass -1
or --fast
option. For the maximum compression ratio and slowest compression you should use the -9
or --best
option with the gzip
command. By default, the compression level is -6
.
For example, for maximum compression, type:
gzip -9 filename
Compression is a CPU-intensive task, the higher the compression level, the longer the process takes.
Using standard input
You can create a .gz
file from the standard input, just pipe the output if the command to gzip
. For example, to generate a Gzip MySQL database backup file, you would run:
mysqldump database | gzip -c > database.sql.gz
The gzip will consider input which is the output of the mysqldump
command.
Decompressing Files with gzip
Use the -d
option, to decompress a .gz
file:
gzip -d filename.gz
You can use the gunzip
command to decompress a Gzip file. This command is basically an alias of gzip -d
:
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
You can decompress multiple files in single command by passing the filenames as arguments:
gzip -d filename1.gz filename2.gz filename3.gz
Decompress all files in a directory
Use -d
and -r
options to decompress all files in a given directory recursively:
gzip -dr directory
Conclusion
Using Gzip you can reduce the size of a given file. The gzip
command allows you to compress and decompress files. To learn more about the gzip
command, visit Gnu gzip documentation page.
If you have any questions or feedback, leave a comment below.