287

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

Sen
  • 2,973

7 Answers7

299

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
rogerdpack
  • 2,394
paxdiablo
  • 7,138
69

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.

Kevin B
  • 13
Stef
  • 791
47

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

gunzip < myfile.gz > myfile
retracile
  • 3,636
23
gzip -dk myfile.gz

OR

gunzip -k myfile.gz

Comments:

   -k --keep    Keep (don't delete) input files during compression or decompression.
14

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.

Alex
  • 2,222
5

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

gunzip -c myfile.gz > myfile
mob
  • 262
  • 1
  • 8
2

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

Justin Smith
  • 4,166