How to Unzip a .gz File in Linux

Sooner or later, you will run into a .gz file, such as a rotated log, downloaded data file, or database dump. Gzip compresses a single data stream, so a raw .gz file is a compressed file rather than a multi-file archive.
This article explains how to decompress .gz files, keep the original file when needed, view compressed text without extracting it, and handle .tar.gz archives. The unzip command handles ZIP archives and does not decompress .gz files.
Unzipping a .gz File
On Linux and macOS, use the built-in gzip
utility to decompress a .gz file. To restore the original file and remove the .gz extension, run:
gzip -d file.gzThe command writes the decompressed data to file and removes file.gz after successful decompression.
Keep the Original .gz File
If you want to decompress the file without deleting the original compressed file, use the -k option:
gzip -dk file.gzYou can also keep the original file by writing the decompressed output somewhere else with the -c option, which sends the result to standard output:
gzip -dc file.gz > decompressed-fileChoose a destination that does not already exist. Shell redirection truncates an existing file before gzip runs, so check the path first. For sensitive data, write to a private directory rather than a shared /tmp directory.
Using gunzip
Another command you can use to decompress a .gz file is gunzip
. This command is a convenience alias for gzip -d.
To open a .gz file with gunzip, run:
gunzip file.gzThe command produces the uncompressed file and removes the .gz compressed file by default.
Viewing a gz File Without Extracting
Sometimes you only need to look inside a compressed text file, such as a rotated log, without creating an uncompressed copy on disk. The zcat, zless, and zgrep commands print, page through, and search gzip-compressed text directly.
To print the contents of a .gz file to the terminal, use zcat:
zcat file.gzOn macOS, the built-in zcat looks for a .Z suffix when given a filename, so zcat file.gz fails even though it can decode gzip data from standard input. Use gzcat file.gz or gzip -dc file.gz instead.
To scroll through a large file page by page, use zless:
zless file.gzYou can also search a compressed file with zgrep:
zgrep "pattern" file.gzzgrep accepts many common grep
options, including -i for case-insensitive searches and -n to show line numbers. It does not support recursive options such as -r or -R, or file-selection options such as --include and --exclude.
None of these commands modify or remove the original .gz file.
Extracting .gz Files Using a File Manager
If you use a desktop environment and are not comfortable with the command line, you can use your file manager to extract .gz files.
To open (unzip) a .gz file, right-click on the file you want to decompress and select “Extract” (or a similar option, depending on your file manager).
On Windows 11, try File Explorer first. If it does not offer an extraction option for a .gz file, use a tool such as 7-Zip
.
Extracting a .tar.gz File
Gzip compresses one data stream and does not store file names or directory structures for multiple files.
The tar format combines multiple files and directories into one archive, which gzip can then compress. Files ending in .tar.gz or .tgz are tar archives compressed with gzip. If you run gunzip on a .tar.gz file, you get a .tar archive that still needs tar -xf to unpack. Before extracting, list the archive contents and check the stored paths:
tar -tf archive.tar.gzAfter checking the list, create a destination directory and extract the archive into it:
mkdir archive-contents && tar -xf archive.tar.gz -C archive-contentsModern versions of tar detect gzip compression automatically. For more options, see our guide on extracting tar.gz files
.
Troubleshooting
End-of-central-directory signature not found
This error comes from running unzip on a .gz file. The unzip command reads ZIP archives only, and a gzip file has no ZIP directory for it to find. Decompress the file with gzip -d file.gz or gunzip file.gz instead.
gzip: file.gz: not in gzip format
The file is not actually gzip compressed, even if its name ends in .gz. This often happens when a download was renamed, the file is a plain tar archive, or the download saved an HTML error page under the .gz name. Check the real format with file file.gz. If the file command
reports HTML document, download the file again.
gzip: file.gz: unexpected end of file
The compressed file is truncated, usually because a download was interrupted. Confirm the error with gzip -t file.gz, then download or copy the file again.
gzip: file already exists; do you wish to overwrite (y or n)?
A file with the target name is already in the directory. Inspect, rename, or back up the existing file before proceeding. Use -f only when you intend to replace it. The overwritten contents cannot be recovered. When standard input is not a terminal, such as in a cron job, GNU gzip does not prompt; it skips the file and prints not overwritten.
gzip: data.gzip: unknown suffix -- ignoredgzip -d accepts only names ending in .gz and a few other known suffixes. Rename the file, decompress it to standard output with gzip -dc data.gzip > data, or tell gzip the suffix with gzip -d -S .gzip data.gzip.
Conclusion
Use gzip -d or gunzip for a raw .gz file, and use tar -xf for a .tar.gz archive after checking its contents. Keep the gzip cheatsheet
nearby for additional commands and options.
Tags
Linuxize Weekly Newsletter
A quick weekly roundup of new tutorials, news, and tips.
About the authors

Dejan Panovski
Dejan Panovski is the founder of Linuxize, an RHCSA-certified Linux system administrator and DevOps engineer based in Skopje, Macedonia. Author of 1000+ Linux tutorials with 20+ years of experience turning complex Linux tasks into clear, reliable guides.
View author page