Linux虚拟机unzip解压报错End-of-central-directory signature not found

本文介绍了解决在Linux虚拟机中使用unzip解压压缩包时遇到的问题,特别是当压缩包通过拖拽方式传输时出现的文件不完整情况。提供了一种可靠的文件传输方法——使用FileZilla,并确保了压缩包的完整性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在VMware的Linux虚拟机中使用unzip解压从本地电脑复制过去的压缩包,一直报错:

Archive:  instantclient-basic-linux.x64-11.2.0.4.0.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.

网上大部分都是说压缩包太大,超过了2G,unzip解压不了。要使用jar/7Z来解压。但是我的压缩包才几十M,觉得应该不是这个问题。后来看到一篇文章,才发现应该是直接从本地拖拽文件到虚拟机导致文件不全无法解压。解决方法如下:


以上报错一般有两种可能

  1. unzip命令无法打开它(如压缩包太大等),这种情况就只能使用其他方法解压了
  2. 压缩包不完整,解决方法如下:

虚拟机:centos7

对比本地文件和拖拽复制进虚拟机的文件大小,相差了几M。应该是拖拽复制方式导致文件不完整。从网上找到另一种传输文件的方式:使用FileZilla

从官网下载、安装完成后,打开软件-->文件-->站点管理器中新建站点然后选择SFTP协议,输入用户名密码点击连接即可。

 

 

此时再在FileZilla上把文件拖过去虚拟机,就可以保证文件的完整。

再在虚拟机中使用unzip解压即可。

解压 ZIP 文件时出现 `End-of-central-directory signature not found` 错误,通常表示 ZIP 文件的结构损坏或不完整,导致解压工具无法找到 ZIP 文件结构中的“中央目录结束标记”(End of Central Directory Record)[^1]。以下是可能的解决方案: ### 1. 检查 ZIP 文件是否损坏或未完全下载 ZIP 文件可能在传输过程中被损坏或未完全下载。尝试重新下载文件以确保其完整性。可以使用校验工具(如 `md5sum` 或 `sha256sum`)验证文件哈希值是否与源文件一致。 ### 2. 使用 `zip` 命令修复 ZIP 文件 如果 ZIP 文件只是部分损坏,可以尝试使用 `zip` 工具的 `-F` 或 `-FF` 选项进行修复: ```bash zip -F corrupted.zip --output repaired.zip ``` 如果文件严重损坏,可使用 `-FF` 参数进行更激进的修复: ```bash zip -FF corrupted.zip --output repaired.zip ``` 此方法尝试从损坏的 ZIP 文件中提取可用内容[^1]。 ### 3. 使用 `unzip` 的 `-t` 参数测试 ZIP 文件完整性 运行以下命令测试 ZIP 文件是否可解压: ```bash unzip -t corrupted.zip ``` 该命令会检查 ZIP 文件结构和内容的完整性,有助于识别具体损坏的部分。 ### 4. 使用 `7-Zip` 或其他解压工具尝试解压 某些解压工具(如 7-Zip)具有更强的容错能力,能够处理部分损坏的 ZIP 文件。尝试使用 7-Zip 或 WinRAR 等工具打开文件: ```bash 7z x corrupted.zip ``` ### 5. 使用 `dd` 和 `file` 命令恢复 ZIP 文件 如果 ZIP 文件嵌套在另一个文件中(如 ISO 或其他容器),可以使用 `dd` 提取 ZIP 数据,再尝试解压: ```bash dd if=container_file of=recovered.zip bs=1 skip=OFFSET ``` 其中 `OFFSET` 是 ZIP 文件数据的起始位置,可以通过 `file` 命令识别: ```bash file corrupted.zip ``` ### 6. 使用 `recover_zip.py` 脚本恢复 ZIP 文件 社区中存在一些 Python 脚本(如 `recover_zip.py`)可用于尝试恢复损坏的 ZIP 文件。该脚本通过扫描文件中的 ZIP 结构尝试重建中央目录。 ```python # 示例脚本片段 import zipfile try: with zipfile.ZipFile('corrupted.zip') as zip_ref: zip_ref.extractall('extracted_files') except zipfile.BadZipFile: print("ZIP file is corrupted.") ``` ### 7. 从源文件重新打包 ZIP 文件 如果拥有原始文件但 ZIP 文件损坏无法修复,可以尝试重新打包文件: ```bash zip -r new_archive.zip original_folder/ ``` 确保新生成的 ZIP 文件结构正确,避免传输过程中的中断或损坏。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值