8

I have a number of gzip archives; however they have a zip extension not gz: ***.zip

When I try to unzip them with unzip, I get not a zip archive error, and with gunzip I get unknown suffix: zip

What is going on here really?

1
  • 2
    Is there any reason that you can't rename the files to have a .gz extension? Commented Oct 9, 2017 at 22:29

1 Answer 1

12

By default, gzip will only decompress files with extensions from a limited list—rather than examining the file magic to determine if it is a gzip'd file. From a comment in gzip.c:get_suffix():

/* ======================================================================== * Return a pointer to the 'z' suffix of a file name, or NULL. For all * systems, ".gz", ".z", ".Z", ".taz", ".tgz", "-gz", "-z" and "_z" are * accepted suffixes, in addition to the value of the --suffix option. 

To use input files which are in fact gzip'd but are not named following gzip's expected conventions, provide the suffix explicitly as per the gzip manual page:

-S .suf --suffix .suf

... When decompressing, add .suf to the beginning of the list of suffixes to try, when deriving an output file name from an input file name.

$ gunzip -S .zip foo.zip 

or use redirection to prevent gzip from seeing the filename:

$ gunzip < foo.zip > foo.txt 
1
  • +1 for a cause - but why not cat file.zip | gunzip > file.ext for the quick lazy way of doing it? And if cat will interrupt due to the "special" characters that would show in a binary, would dd work in its place - dd if=filezame.zip | gunzip > filename.ext Commented Oct 10, 2017 at 1:39

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.