How do you gunzip a file and keep the .gz file?
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
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
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.
A simpler solution is to just use gunzip as a filter like this:
gunzip < myfile.gz > myfile
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.
gzip -dk myfile.gz
OR
gunzip -k myfile.gz
Comments:
-k --keep Keep (don't delete) input files during compression or decompression.