拆分后的大Zip文件执行unzip -l重定向报错求助
解决Zip分片重定向输出报错的问题
嘿,我来帮你梳理下这个问题的可能原因和解决办法!
首先,你提到把拆分后的分片都改成了.zip后缀,这大概率是问题的源头——标准的Zip分卷文件命名是有规范的:主文件是test.zip,分片应该是test.z01、test.z02这种格式。你改成统一的.zip后缀后,unzip在处理时可能会出现识别混乱,尤其是重定向输出时,stderr的错误信息会暴露出来(而用| more时,more只处理stdout,错误信息可能被你忽略了)。
下面是具体的解决步骤:
1. 恢复分片的标准命名
先把分片改回规范格式,比如假设你的三个文件是test.zip、test_2.zip、test_3.zip,执行:
mv test_2.zip test.z01 mv test_3.zip test.z02
(根据你实际的文件名调整即可)
2. 正确重定向所有输出
现在再尝试把输出重定向到文件,记得把错误信息也一起捕获,这样能看到具体问题(如果还有的话):
unzip -l test.zip > zip_content.txt 2>&1
这里的2>&1是把stderr(错误输出)合并到stdout(正常输出)里,一起写入文件。
其他排查方向
如果上面的方法没用,可以试试这些:
- 检查权限和磁盘空间:确保你要写入的目录有足够权限,并且磁盘剩余空间足够。可以用
touch test.txt && rm test.txt测试权限,df -h .查看当前目录空间。 - 换用
zipinfo工具:如果unzip对分片处理有问题,试试专门的Zip信息工具zipinfo,它的兼容性可能更好:# 只输出文件名列表 zipinfo -1 test.zip > zip_content.txt # 输出详细信息 zipinfo test.zip > zip_content.txt 2>&1
内容的提问来源于stack exchange,提问作者sanees
相关产品推荐
相关产品推荐

