日期:2014-05-16  浏览次数:20668 次

我使用过的Linux命令之unzip - 解压zip文件

我使用过的Linux命令之unzip - 解压zip文件

本文链接:http://codingstandards.iteye.com/blog/792040 ?? (转载请注明出处)

用途说明

zip文件是一种常用的压缩文件格式,WinZip、WinRar等压缩软件都支持zip文件格式,就连java的jar包也是zip格式的,Firefox插件xpi文件也是zip格式的。Linux在zip文件上的支持也是很周到的,它提供了zip、unzip和zcat等命令来支持。本文的主题是讲一下使用unzip命令来解压zip格式的压缩文件。当我们需要把Windows上的很多文件(比如一个目录中的所有文件)上传到Linux时,可以先把这些文件打包到一个zip文件中,然后再上传,再在Linux下利用unzip进行解压,这比一个一个上传好得多。

常用参数

在linux下解压zip文件,最简单的方式就是unzip命令直接跟上要解压的zip文件。

unzip <zip-file>

上面的用法是把文件解压到当前目录下,如果要把文件解压到指定的目录下,需要用到-d参数。

unzip -d <dst-dir> <zip-file>

解压的时候,有时候不想覆盖已经存在的文件,那么可以加上-n参数。

unzip -n <zip-file>

unzip -n -d <dst-dir> <zip-file>

有时候,我们只想看一下zip压缩包中包含哪些文件,就可以使用-l参数。

unzip -l <zip-file>

我们在使用WinZip或WinRar的时候,它显示的文件列表还包含压缩比率,unzip命令使用-v命令也可以看到这些信息。

unzip -v <zip-file>

我们经常会碰到这种情况,从网上下载的zip文件可能不完整,在使用WinZip或WinRar打开的时候,会报错,unzip提供了-t参数来检查zip文件是否损坏。

unzip -t <zip-file>

使用示例

示例一 解压tinyxml开发包

tinyxml是一个解析XML的C++开发包,它小巧玲珑,简单易用。

[root@rhel55 c++]# ls tinyxml_2_6_1.zip -l
-rw-r--r-- 1 root root 296068 10-22 14:25 tinyxml_2_6_1.zip
[root@rhel55 c++]# unzip tinyxml_2_6_1.zip
Archive:? tinyxml_2_6_1.zip
?? creating: tinyxml/
? inflating: tinyxml/changes.txt????
?? creating: tinyxml/docs/
? inflating: tinyxml/docs/annotated.html?
? inflating: tinyxml/docs/classes.html?
? inflating: tinyxml/docs/classTiXmlAttribute-members.html?
? inflating: tinyxml/docs/classTiXmlAttribute.html?
? inflating: tinyxml/docs/classTiXmlAttribute.png?
? inflating: tinyxml/docs/classTiXmlBase-members.html?
? inflating: tinyxml/docs/classTiXmlBase.html?
? inflating: tinyxml/docs/classTiXmlBase.png?
? inflating: tinyxml/docs/classTiXmlComment-members.html?
? inflating: tinyxml/docs/classTiXmlComment.html?
?extracting: tinyxml/docs/classTiXmlComment.png?
? inflating: tinyxml/docs/classTiXmlDeclaration-members.html?
? inflating: tinyxml/docs/classTiXmlDeclaration.html?
?extracting: tinyxml/docs/classTiXmlDeclaration.png?
? inflating: tinyxml/docs/classTiXmlDocument-members.html?
? inflating: tinyxml/docs/classTiXmlDocument.html?
? inflating: tinyxml/docs/classTiXmlDocument.png?
? inflating: tinyxml/docs/classTiXmlElement-members.html?
? inflating: tinyxml/docs/classTiXmlElement.html?
? inflating: tinyxml/docs/classTiXmlElement.png?
? inflating: tinyxml/docs/classTiXmlHandle-members.html?
? inflating: tinyxml/docs/classTiXmlHandle.html?
? inflating: tinyxml/docs/classTiXmlNode-members.html?
? inflating: tinyxml/docs/classTiXmlNode.html?
? inflating: tinyxml/docs/classTiXmlNode.png?
? inflating: tinyxml/docs/classTiXmlPrinter-members.html?
? inflating: tinyxml/docs/classTiXmlPrinter.html?
? inflating: tinyxml/docs/classTiXmlPrinter.png?
? inflating: tinyxml/docs/classTiXmlText-members.html?
? inflating: tinyxml/docs/classTiXmlText.html?
?extracting: tinyxml/docs/classTiXmlText.png?
? inflating: tinyxml/docs/classTiXmlUnknown-members.html?
? inflating: tinyxml/docs/classTiXmlUnknown.html?
? inflating: tinyxml/docs/classTiXmlUnknown.png?
? inflating: tinyxml/docs/classTiXmlVisitor-members.html?
? inflating: tinyxml/docs/classTiXmlVisitor.html?
? inflating: tinyxml/docs/classTiXmlVisitor.png?
? inflating: tinyxml/docs/deprecated.html?
? inflating: tinyxml/docs/doxygen.css?
? inflating: tinyxml/docs/doxygen.png?
? inflating: tinyxml/docs/files.html?
? inflating: tinyxml/docs/functions.html?
? inflating: tinyxml/docs/functions_0x63.html?
? inflating: tinyxml/docs/fun