unzip命令在没有解压缩文件的情况下成功结束

时间:2015-02-03 17:21:37

标签: unix encryption compression zip gunzip

有双重压缩文件,扩展名为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

1 个答案:

答案 0 :(得分:1)

你发现正在创建xxx.txt,对吗?

unzipgunzip在处理档案方面有不同的“理念”。 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。