236

I have a file file.gz, when I try to unzip this file by using gunzip file.gz, it unzipped the file but only contains extracted and removes the file.gz file.

How can I unzip by keeping both unzipped file and zipped file?

0

2 Answers 2

353

Here are several alternatives:

  • Give gunzip the --keep option (version 1.6 or later)

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

    gunzip -k file.gz
    
  • Pass the file to gunzip as stdin

    gunzip < file.gz > file
    
  • Use zcat (or, on older systems, gzcat)

    zcat file.gz > file
    
11
  • 7
    Where do I get a version of gunzip with -k or --keep? I'm using version 1.5 in Gentoo and it has no such option. Sep 18, 2014 at 22:02
  • 2
    @PavelŠimerda It was added in version 1.6. I've amended my answer. Thanks. Sep 18, 2014 at 22:15
  • Thanks a lot! With the other option this is now the best answer. Sep 18, 2014 at 22:21
  • 2
    @PavelŠimerda If you need --keep but don't have it, just make a copy of file.gz first.
    – Liam
    Aug 19, 2015 at 16:33
  • 4
    gunzip -c file.gz > file or zcat file.gz > file also work. superuser.com/questions/45650/…
    – phyatt
    May 1, 2017 at 14:38
42

Without requiring a temporary file:

 zcat somefile.gz > somefile
1
  • 1
    This also works great if you want to pipe the output to another command with buffering without deleting the file zcat file.sql.gz | mysql --max_allowed_packet=32M db
    – Soheil
    Sep 19, 2021 at 19:25

Not the answer you're looking for? Browse other questions tagged or ask your own question.