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
37 Answers
You're looking for:
gzcat x.txt.gz >x.txtThe 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.txtNote that on some systems gzcat is also known as zcat so run like this instead:
zcat x.txt.gz >x.txt 12 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-fileMore details on the manual page.
1A simpler solution is to just use gunzip as a filter like this:
gunzip < myfile.gz > myfile 2 gzip -dk myfile.gzOR
gunzip -k myfile.gzComments:
4-k --keep Keep (don't delete) input files during compression or decompression.
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.
3Use the -c option to uncompress the file to stdout. It will not touch the original file.
gunzip -c myfile.gz > myfile Gnu tar can read gzip files: tar -zxsvf myfile.tar.gz or tar -jxzvf myfile.tar.bz2 for bzipped tar files.