Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

The default behavior of gunzip is to delete the .gz file after it decompresses.

How do I prevent it from deleting the file??

If this functionality is not included then is there an alternative program that allows this?

I'm using Ubuntu 9.04

share|improve this question

migrated from Sep 23 '09 at 14:54

This question came from our site for professional and enthusiast programmers.

use the following command: gunzip -k – fazineroso Aug 3 '15 at 13:45
what gunzip has -k option? I see no one. – Znik Nov 27 '15 at 14:42
up vote 152 down vote accepted

You're looking for:

gzcat x.txt.gz >x.txt

The gzcat command is equivalent to gunzip -c which simply writes the output stream to stdout. This will leave the compressed file untouched. So you can also use:

gunzip -c x.txt.gz >x.txt

Note that on some systems gzcat is also known as zcat so run like this instead:

zcat x.txt.gz >x.txt
share|improve this answer
Thanks for the answer. Growing up with pkunzip in DOS I find it so strange that there isn't an option to keep the file. Especially with a tool like gzip being so widely used... just weird. – Sen Sep 23 '09 at 14:59
FYI, I actually don't have gzcat. Neither my local system or the system I was ssh'ed into. So, I have to use gunzip -c – Sen Sep 23 '09 at 16:15
it's probably just zcat on your system. – user23307 Jan 31 '10 at 14:52
An additional option to keep the file would be nice indeed. For example, b(un)zip2 uses similar syntax and allows to simply add -k to keep the original file. – schnaader Sep 8 '11 at 20:19
You can also add the line alias gzcat="gunzip -c" to your .bashrc – James Kingsbery Mar 30 '12 at 20:04

You can use the -c option of gunzip which writes the output to stdout, and then pipe it to the file of your choice:

gunzip -c compressed-file.gz > decompressed-file

More details on the manual page.

share|improve this answer
By the way, note that the man page referred to above lists a -k option, which means keep input files. Maybe this works on the BSD version, but it doesn't on mine, so the -c solution seems to be the correct one. – user49260 Sep 13 '10 at 22:01

A simpler solution is to just use gunzip as a filter like this:

gunzip < myfile.gz > myfile
share|improve this answer

If it's actually a tarball (.tgz or .tar.gz extension), then instead of redirecting to file like all of the answers so far, you'll want to pipe it to tar, like so:

gunzip -c myfile.tar.gz | tar xvf -

so that you get the actual contents.

share|improve this answer
or just do: tar xzvf myfile.tar.gz – Joakim Elofsson Sep 23 '09 at 17:39
true, but only if you have GNU tar. The one that comes with Solaris, for example, doesn't support the z option. – Alex Sep 23 '09 at 20:01

Use the -c option to uncompress the file to stdout. It will not touch the original file.

gunzip -c myfile.gz > myfile
share|improve this answer

Gnu tar can read gzip files: tar -zxsvf myfile.tar.gz or tar -jxzvf myfile.tar.bz2 for bzipped tar files.

share|improve this answer

You must log in to answer this question.

protected by studiohack Apr 27 '11 at 0:57

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged .