解压 zip 文件:“未找到中央目录末尾的签名”错误

解压 zip 文件:“未找到中央目录末尾的签名”错误

我每次尝试解压缩文件时都会收到此错误:

Archive:  Server.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.
unzip:  cannot find zipfile directory in one of Server.zip or
        Server.zip.zip, and cannot find Server.zip.ZIP, period.

我用 7zip 压缩了它,但它仍然不起作用。我读过一些关于 MD5 的内容,我需要它来解压吗?

答案1

我测试了 和7zzipunzip故意混合了这些程序,但我无法重现该问题。然而,这很可能是压缩数据所特有的。
由于7z使用了7z 格式默认情况下,文件扩展名无关紧要,我首先想到的是它会创建一个 7z 格式的文件命名 zip,但事实证明它并不是那么不用户友好:即使没有指定格式的选项,
7z a 1.zip 2也会创建一个正确的1.zip文件。但是创建并按预期创建。-t zip
7z a 1 21.7z7z a -t zip 1 21.zip

一般来说,

  1. 使用同一个程序打包和解包档案:

    7z a Server.zip file1 file2 dir1/ # add files
    7z x Server.zip # extract with full paths
    7z e Server.zip # extract IGNORING paths

    zip Server.zip file1 file2 dir1/ # add files
    unzip Server.zip # extract with full paths
    
  2. 用一个加密哈希测试档案是否已正确传输:

    1. md5sum在您的服务器上,使用、sha1sumsha224sumsha256sum1保存哈希值(均遵循相同的语法),sha384sum例如sha512sum

      sha1sum Server.zip otherfile.zip > sha1hashsums
      
    2. 传输 zip 文件和sha1hashsums文件。
    3. 使用以下方法测试 zip 文件:

      $ sha1sum -c sha1hashsums
      Server.zip: FAILED
      otherfile.zip: OK
      

1它们之间最重要的区别是哈希的大小,哈希越长越安全。MD5产生 128 位哈希值,SHA1160 位的,其他在其名称中标明哈希值大小,例如sha512sum512 位哈希值。其余部分留给 Wikipedia,请参阅链接。

相关内容