1. 确保文件完整上传(避免损坏)
方法 1:使用 MobaXterm 的 SFTP 上传(推荐)
- 打开 MobaXterm,点击左上角 "SFTP" 浏览器(或按
Ctrl+Shift+F
)。 - 拖拽文件 到右侧
/XXXX
目录(或目标路径)。 - 校验文件完整性(避免传输损坏):
# 在 MobaXterm 终端执行:
md5sum /XXXX/FILE.zip
方法 2:使用 rsync
(适合大文件,自动校验)
# 在本地 Windows CMD/PowerShell 执行:
rsync -avzP --checksum FILE.zip root@服务器IP:/XXXX/
--checksum
:强制校验文件内容(避免损坏)。
2. 解压前检查 ZIP 文件
(1)检查 ZIP 是否完整
unzip -t /XXXX/FILE.zip
- 如果报错
unzip: short read
→ 文件损坏,需修复或重新上传。
(2)使用 7z
测试(容错更强)
7z t /XXXX/FILE.zip
3. 修复损坏的 ZIP 文件
方法 1:用 zip -FF
修复
zip -FF /XXXX/FILE.zip --out /XXXX/FILE_repaired.zip
方法 2:用 7z
强制解压
7z x -y /XXXX/FILE.zip -o/XXXX/
4. 避免传输损坏的最佳实践
操作 | 说明 |
---|
使用 SFTP 上传 | MobaXterm 的 SFTP 比拖拽更稳定(避免损坏)。 |
分卷压缩大文件 | 用 7-Zip/WinRAR 分卷压缩(如 500MB/卷 ),降低单文件传输失败风险。 |
添加恢复记录 | 用 WinRAR/7-Zip 压缩时勾选 “添加恢复记录”(可修复 10% 损坏)。 |
传输后校验 MD5 | 用 md5sum 对比本地和服务器的文件,确保一致。 |
使用 rsync 替代拖拽 | rsync --checksum 自动校验文件,适合大文件传输。 |
5. 解压成功后的验证
ls /XXXX # 检查解压文件是否存在
- 如果文件缺失,可能是 ZIP 损坏,需重新从源头获取。
附:常见问题速查表
问题 | 原因 | 解决方案 |
---|
unzip: short read | ZIP 文件损坏 | 用 zip -FF 修复或 7z x -y 强制解压。 |
invalid zip file | 文件头损坏 | 重新上传或修复 ZIP。 |
unexpected EOF | 文件传输不完整 | 用 rsync 重新上传。 |
Permission denied | 目标目录无写入权限 | 用 sudo 或换到用户目录(如 ~/ )。 |
总结
- 上传前 → 用 SFTP 或
rsync
,避免拖拽损坏。 - 上传后 → 用
md5sum
校验文件一致性。 - 解压前 → 用
unzip -t
或 7z t
测试 ZIP 完整性。 - 解压失败 → 用
zip -FF
或 7z x -y
修复。