我的机器可以运行Debian 6.0.7
,我有Zip 3.0 (July 5th 2008), by Info-ZIP
。当我尝试解压 .zip 文件时,十有八九无法提取所有内容。会丢失 2-3 个文件。
起初我以为是因为文件大小和一些我不知道的限制,但后来我注意到 150MB 的小文件也会这样。然后我想可能是因为我是通过 bash 脚本文件解压的,所以我手动解压文件进行了测试,结果还是没有问题。
今天我终于用一个 140MB 的 .zip 文件检查了它。我手动和使用 .sh 脚本提取了该文件 10 次,每次提取后我都会运行ls -h -R > ../test_n.txt
以记录每次解压后的文件夹。在比较了所有 20 个文件后,我发现 20 次中有 7 次它会遗漏 .zip 文件中的 2 到 8 个文件。
有人知道为什么会发生这种情况吗?
答案1
我完全不知道会发生什么……但是,您可以尝试以下方法来调试问题:
如果该
zip
版本有一个-l
标志,或者其他东西可以在不解压缩的情况下检查 zip 文件中有什么文件,那么这可能会有所帮助。zip -l file.zip
这将向您显示 zip 文件的内容,因此解压后您应该会看到相同数量的文件 - 您可以将其用作脚本中的测试,以确保您始终解压所有文件。
这些 zip 文件真的正确吗?如果您从其他来源获取文件,请对文件进行校验,然后将其与您尝试解压的 zip 文件进行比较。如果不同,则文件损坏可能是导致此问题的原因。
命令的返回码是什么
zip
?使用 解压文件后zip
,发出echo $?
命令以检查其返回码 - 如果不同于零,则程序会告诉您,在某种程度上,程序执行总体上不成功。请注意,此值可能会有所不同,但据我所知,在 unix/linux 实用程序中,使用零表示成功,使用其他数字表示错误/警告是相当标准的。
我希望这有帮助 :)