有双重压缩文件,扩展名为xxx.zip.gz
在gunzip上 - 创建大小为0.25 GB的xxx.zip文件 在gunzip之后解压缩 - xxx.zip文件扩展名不会改变
解压输出:
Archive: xxx.zip
inflating: xxx.txt
也
echo $? shows 0
所以,即使zip命令成功完成,文件仍保留zip扩展名,有什么帮助吗?
OS - SunOS 5.10
答案 0 :(得分:1)
你发现正在创建xxx.txt,对吗?
unzip
和gunzip
在处理档案方面有不同的“理念”。 gunzip
删除了.gz
文件,而unzip
保留了zip
文件。所以在你的情况下,zip是按设计工作的。
我认为你能做的最好的就是
unzip -q xxx.zip && /bin/rm xxx.zip
如果unzip
退出且没有错误,则只会删除zip文件。 -q
选项会使unzip
变得安静,因此您无法获得上面包含的状态消息。
修改强>
正如您问when zip file itself is +10 GB in size, then unzip does not succeed
假设您确定有足够的磁盘空间来保存扩展的orig文件,那么很难说。扩展文件有多大?超过2GB? SunOS5我相信,过去的文件大小限制为2GB,需要将“大文件”支持添加到内核和实用程序中。我再也无法访问Sun,所以无法确认。我认为您会找到apropos largefile
的地方(假设$MANPATH
设置正确)。
但unzip
正确工作的基本测试类似于
if unzip "${file}" ; then
echo "clean unzip for ${file}, deleting the archive file" >&2
/bin/rm "${file}"
else
echo "error running unzip for ${file}, archive file remains in place" >&2
fi
(或者我不明白你的用例)。随意发布另一个显示ls -l xxx.zip.gz xxx.zip
的问题和其他详细信息,以帮助重建您预期的工作流程。
IHTH。