164

I try to unzip a zip file, but got an error:

$ unzip COCR2_100.zip 
Archive:  COCR2_100.zip
  End-of-central-directory signature not found.  Either this file is not
  a zipfile, or it constitutes one disk of a multi-part archive.  In the
  latter case the central directory and zipfile comment will be found on
  the last disk(s) of this archive.
note:  COCR2_100.zip may be a plain executable, not an archive
unzip:  cannot find zipfile directory in one of COCR2_100.zip or
        COCR2_100.zip.zip, and cannot find COCR2_100.zip.ZIP, period.

I googled but didn't find a solution. I was wondering why it is and how I should fix it? Thanks!

The zip file can be downloaded from COCR2_100. It is an application, and here is its website http://users.belgacom.net/chardic/cocr2.html.

My OS is 10.10.

7
  • I was able to download and extract the program without any problems using the mirror link. Perhaps your download is corrupt? here is my md5sum output on the file: a55352aac3193948478952dea33828ef /home/chuck/Desktop/COCR2_100.zip
    – Ctuchik
    Jul 28, 2011 at 20:10
  • 2
    If you md5sum the file and get the same result "a55352aac3193948478952dea33828ef" Then your download is good, but if it isn't EXACTLY the same, then your download is corrupt
    – Ctuchik
    Jul 28, 2011 at 20:11
  • @Ctuchik: Thanks! The mirror one is good. The original one is broken.
    – Tim
    Jul 28, 2011 at 20:44
  • np bud, glad i could be of service.
    – Ctuchik
    Jul 28, 2011 at 20:44
  • 7
    Use the more robust jar xvf archive.zip, or try to fix the archive with zip -F archive.zip -O archive-fixed.zip (or -FF, see man zip).
    – Zaz
    Sep 27, 2014 at 18:22

6 Answers 6

226

Try this excellent solution:

jar xvf COCR2_100.zip

steps:

  1. drag and drop file into terminal window.
  2. use keyboard arrows to navigate to start of line in terminal
  3. type jar xvf in front of your file name, remembering to leave space before the start of your file name.
  4. grab a beer and watch terminal work its magic as it extracts files.

The location of where the new files go varies, but usually best trick to find them is click on your computer name in Finder which should display most recent activity at top of all files.

If the jar command is not available, you can install fastjar by pasting the following in terminal:

sudo apt-get install fastjar
14
  • 10
    @EliahKagan it is not, but the trick works Nov 28, 2012 at 7:49
  • 1
    Java's jar uses the zip format internally, and it's not surprising that, one "unzipper" would handle corruption better than another.
    – Lambart
    Sep 20, 2013 at 20:29
  • 3
    Wow this is exactly what I was looking for! Should def be the accepted answer. Any idea why this works? Jan 21, 2014 at 0:10
  • 5
    I think this works for corrupt (or incompletely downloaded) files because the jar utility does not check for the End-of-central-directory signature before starting the extraction. If that really is the case, chances are you might not be able to extract every file and the utility might end with an error like Unexpected end of ZLIB input stream at the end. May 31, 2014 at 19:45
  • 5
    Upvoted. Thank you: it was a headache to repair 6.5Gb zip with "zip -FF": produced "fixed" archive was tthe esact copy of damaged (incomplete) original one. I knew that .jar files are zips internally, but I never used the jar executable to unpack zip archives :-) Jun 7, 2015 at 4:41
46

The problem is exactly what it says. Unzip can't find the line of code that signals the end of the archive, so either:

  1. The archive is corrupt.
  2. It is not a .zip archive.
  3. There are more than 1 parts to the archive, but that doesn't seem possible to me. You should try the other mirror too. It worked for me.

P.S. Notice how the program is made for Windows. So you need Wine (from http://www.winehq.com or the Ubuntu Software Center) to run it.

2
  • 2
    It seems that "unzip" is not very robust and therefore cannot cope with corrupted (or incompletely downloaded) archives.
    – loevborg
    May 9, 2013 at 14:59
  • Not exactly, I can unpack such file by Winrar or other popular Windows tools. Example file stanford-chinese-corenlp-2016-10-31-models.jar at nlp.stanford.edu/software/CRF-NER.shtml .
    – Mithril
    Feb 14, 2017 at 6:45
41

Unzipping with 7z worked for me:

7z x COCR2_100.zip

Install via APT with apt install p7zip-full.

4
  • Thanks @Campa 7z helped me to open a password encrypted zip with the similar issue.
    – Cyril
    Aug 29, 2018 at 12:26
  • @Campa Thanks , I was facing problem to unzip with artifacory , build of elixir app.
    – ShreePool
    Dec 10, 2018 at 10:43
  • @campa, Thanks. This worked Aug 19, 2020 at 0:38
  • This also worked for me, but on a mac I first needed to run: brew install p7zip
    – BananaNeil
    Apr 26 at 3:10
8

I had a similar issue today and had some success with dd and gunzip. Try this:

dd if=corrupt.zip | gunzip -f > xx.csv

In my case I still got the "gunzip: stdin: unexpected end of file" error but at least I got some output to view.

2
  • I found that zcat corrupt.zip > xx.csv did almost exactly the same thing....
    – Wilf
    Jul 26, 2014 at 17:30
  • 1
    Why do you output it as a csv? Feb 16, 2016 at 19:31
5

Error can be caused by mixing up archive types:

I noticed that when using unzip, but on a gunzip (GNU) archive I would get this error, e.g.

End-of-central-directory signature not found. Either this file is not a zipfile, or it constitutes one disk of a multi-part archive. In the latter case the central directory and zipfile comment will be found on the last disk(s) of this archive. unzip: cannot find zipfile directory in one of create_tables.sql.gz or create_tables.sql.gz.zip, and cannot find create_tables.sql.gz.ZIP, period."

Using gunzip on this same archive performed without errors. !!

1
  • That did for my script which creates a zip file on the remote machine with gzip. unzip was failing. gunzip is working great now.
    – Augusto
    Feb 19, 2021 at 19:09
1

I think the guys/gals that responded to you is on the right track it is very well a corrupted file. If that is the case then try another mirror to download the file. Your may try to install rar by opening terminal sudo apt-get install rar which for a true zip file rar is a little overkill. However it does add support for other formats and allows you to extracts different file types.

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