unzip
在类Unix操作系统,unzip命令列出,提取物和测试压缩的文件,ZIP 压缩文件。 本文档介绍了Linux版本的unzip。
查看英文版
1 unzip 运行系统环境
2 unzip 描述
3 unzip 语法
4 unzip 示例
unzip 运行系统环境
Linux
unzip 描述
查看英文版
unzip 语法
unzip [-Z] [-cflptTuvz[abjnoqsCDKLMUVWX$/:^]] file[.zip] [file(s) ...] [-x xfile(s) ...] [-d exdir]参数
unzip遵守以下参数:
file[.zip] |
zip存档的路径。如果文件规范是通配符,则按照操作系统(或文件系统)确定的顺序处理每个匹配文件。只有文件名可以是通配符。路径本身不能。通配符表达式与常用的Unix shell(sh,ksh,csh)支持的表达式相似,并且可能包含:
|
||||||
[file(s)] | 待处理的归档成员的可选列表,以空格分隔。(带VMSCLI编译VMS版本中定义必须界定文件用逗号来代替。参见-v在OPTIONS下面。)正则表达式(通配符)可以被用于将多个部件匹配,如上面所述。同样,请确保引用由操作系统扩展或修改的表达式。 | ||||||
[ -x xfile(s) ] | 归档成员的可选列表,将其从处理中排除。由于通配符通常匹配(' / ')目录分隔符(有关例外情况,请参阅选项-W),因此此选项可用于排除子目录中的所有文件。例如,“ unzip foo *。[ch] -x * / * ”将提取主目录中的所有C 源文件,但未提取任何子目录中的C 源文件。如果没有-x选项,则将解压缩zipfile中所有目录中的所有C源文件。 | ||||||
[ -d exdir ] | 如果指定,文件将被提取到目录exdir。默认情况下,所有文件和子目录都在当前目录中创建;所述-d选项允许提取在任意目录(假设总是一个具有允许对写入到目录)。此选项不必出现在命令行末尾;也可以在zipfile规范之前(带有常规选项),在zipfile规范之后,或者在文件和-x选项之间接受它。选项和目录可以串联在一起,而它们之间没有任何空格,但是请注意,这可能会导致正常的shell行为受到抑制。特别是, ”-d〜 “(波浪)是由Unix的C shell扩展到用户名的主目录,但” -d〜 “被视为文字子目录” 〜当前目录的“。 |
此外,unzip接受以下选项:
-Z | zipinfo模式。如果命令行上的第一个选项是-Z,则其余选项将被视为zipinfo选项。 |
-一个 | [ OS / 2,Unix DLL ]打印扩展的DLL编程接口(API)帮助。 |
-C | 将文件提取到stdout / screen(“ CRT ”)。此选项与-p选项相似,不同之处在于每个文件的名称在提取时都会打印出来,允许使用-a选项,并且在适当的情况下会自动执行ASCII - EBCDIC转换。此选项未在解压缩用法屏幕中列出。 |
-F | 刷新现有文件,即仅提取磁盘上已存在且比磁盘副本新的文件。缺省情况下,在覆盖之前先解压缩 查询,但是-o选项可用于禁止查询。请注意,在许多操作系统下,必须正确设置TZ(时区)环境变量,以使-f和-u正常工作(在Unix下,该变量通常是自动设置的)。这样做的原因有些微妙,但与DOS格式的文件时间(总是本地时间)和Unix格式的时间(总是GMT / UTC)之间的差异有关。)以及将两者进行比较的必要性。典型的TZ值是“ PST8PDT ”(美国太平洋时间,可以自动调整夏令时)。 |
-l | 列出存档文件(短格式)。打印指定文件的名称,未压缩的文件大小以及修改日期和时间,以及所有指定文件的总数。如果解压缩使用定义的OS2_EAS进行编译,则-l选项还将列出存储的OS / 2扩展属性(EA)和OS / 2访问控制列表(ACL)大小的列。此外,还会显示zipfile注释和单个文件注释(如果有)。如果文件是从单大小写文件系统(例如,旧的MS-DOS FAT文件系统)中归档的,并且给出了-L选项,则文件名将转换为小写并以脱字符号(^)。 |
-p | 将文件提取到管道(标准输出,标准输出)。除了文件数据外,什么都没有发送到stdout,并且文件总是以二进制格式提取,就像存储文件一样(不进行转换)。 |
-t | 测试存档文件。此选项提取内存中的每个指定文件,并将扩展文件的CRC(循环冗余校验,增强的校验和)与原始文件存储的CRC值进行比较。 |
-T | [大多数操作系统]将存档上的时间戳设置为每个中最新文件的时间戳。这与zip的-go选项相对应,不同之处在于它可以用于通配符zip文件(例如,“ unzip -T \ *。zip ”),并且速度更快。 |
-u | 更新现有文件并根据需要创建新文件。该选项执行与-f选项相同的功能,提取(带有查询)比磁盘上具有相同名称的文件新的文件,此外,它还提取磁盘上不存在的文件。有关正确设置时区的信息,请参见上面的-f。 |
-v | 列出存档文件(详细格式)或显示诊断版本信息。此选项已发展,现在既充当选项又充当修饰符。作为一个选项,它有两个用途:当指定一个zipfile且没有其他选项时,-v详细列出归档文件,在基本-l info中添加压缩方法,压缩大小,压缩率和32位CRC。与大多数竞争性实用程序相比,解压缩可删除加密的12个附加头字节字节压缩大小数字中的条目。因此,压缩大小和压缩率数字与条目的加密状态无关,并显示正确的压缩性能。(用于zipfile条目的加密压缩数据流的完整大小由更详细的zipinfo报告来报告。)未指定zipfile时(即,完整命令为“ unzip -v ”),将显示诊断屏幕。除了带有发布日期和版本的普通标题外,还需解压缩列出家庭Info-ZIP ftp站点以及在哪里可以找到其他ftp和非ftp站点的列表;对其进行编译的目标操作系统,以及(可能)在其上进行编译的硬件,所使用的编译器和版本以及编译日期;任何可能影响程序操作的特殊编译选项(另请参见下面的DECRYPTION);以及存储在环境变量中的任何可能执行相同操作的选项(请参阅下面的“ 环境选项”)。作为修饰符,它可以与其他选项(例如-t)结合使用,以产生更多详细信息或调试输出。 |
-z | 仅显示存档注释。 |
-a | 转换文本文件。通常,所有文件都完全按照其存储方式提取(作为“二进制”文件)。所述-a选项使通过拉链为文本文件(那些与“识别的文件吨在”标签zipinfo列表,而不是“ b ”),以作为这样的自动提取,转换行结束,结束文件的字符和字符根据需要进行设置。(例如,Unix文件使用换行符(LF)作为行尾(EOL)且没有文件结束(EOF)标记;Macintosh使用EOL的回车(CR);以及大多数PC操作系统使用CR + LF用于EOL,而Control-Z用于EOF。另外,IBM 大型机和密歇根州终端系统使用EBCDIC而不是更常见的ASCII字符集,而NT支持Unicode。)请注意,zip对文本文件的识别绝不是完美的;一些“文本”文件实际上可能是二进制文件,反之亦然。因此,对于使用-a选项提取的每个文件,unzip会打印“ [text] ”或“ [binary] ”作为对其进行目测的检查。该-AA选项强制所有文件中提取文本,无论是所谓的文件类型。在VMS上,另请参阅-S |
-b | [general]将所有文件视为二进制文件(不进行文本转换)。这是--- a的快捷方式。 |
-b | [Tandem] 在提取标记为“文本”的Zip条目时强制使用文件代码类型180(' C ')的创建文件。(在串联时,-a默认情况下处于启用状态;请参见上文)。 |
-b | [VMS]自动将二进制文件(请参见上面的-a)转换为固定长度的512 字节记录格式。将选项(-bb)加倍会使所有文件以这种格式提取。提取到标准输出时(实际上是-c或-p选项),对于二进制(-b)响应,将禁用文本记录定界符的默认转换。所有(-bb)文件。 |
-B |
[使用定义的UNIXBACKUP进行编译时]保存每个覆盖文件的备份副本。备份文件将获取目标文件的名称,并带有波浪号和可选的唯一序列号(最多5 位)。只要已经存在具有原始名称加代字号的另一个文件,就应用序列号。与“全部覆盖”选项-o一起使用时,永远不会创建编号的备份文件。在这种情况下,所有备份文件都将被命名为带有附加波浪号的原始文件,现有的备份文件将被删除,恕不另行通知。此功能与许多位置的emacs的默认行为类似。 例如,将“ foo ” 的旧副本重命名为“ foo〜 ”。“ :警告:用户应注意-B选项不能在所有情况下都防止丢失现有数据。例如,当以全写模式运行unzip时,将在尝试进行解压缩之前删除现有的“ foo〜 ”文件。将“ foo ” 重命名为“ foo〜 ”。如果重命名尝试失败(由于文件锁定,权限不足或其他原因),“ foo〜 ” 的提取将被取消,但是旧的备份文件已经丢失。当编号备份文件的序列号范围用尽(99999或65535(对于16位)系统)。在这种情况下,具有最大序列号的备份文件将被删除,并由新的备份版本替换,恕不另行通知。 |
-C |
使用不区分大小写的匹配从提取选择模式的命令行列表中选择归档条目。unzip的理念是“满足您的要求”(这还负责-L / -U更改;请参见下面的相关选项)。由于某些文件系统完全区分大小写(特别是在Unix操作系统下),并且zip存档和unzip本身都可以跨平台移植,因此unzip的默认行为是区分大小写匹配通配符和文本文件名。也就是说,在命令行上指定“ makefile ”将仅与归档文件中的“ makefile ”匹配,而不与“MAKEFILE “(以及类似的通配符规范)。由于这与许多其他操作系统/文件系统(例如OS / 2 HPFS,它保留大小写但不区分大小写)的行为不符,因此-C选项在上面的示例中,所有三个文件都将匹配“ makefile ”(或“ make * ” 或类似名称)。在-C选项会影响正常的文件列表和排除文件列表(包括文件规范的Xlist)。 请注意-C选项不会影响对zip文件的搜索,也不会影响存档条目与提取路径上现有文件的匹配。在区分大小写的文件系统上,解压缩将永远不会在提取条目“ foo ” 时尝试覆盖文件“ FOO ”! |
-D |
跳过提取项目时间戳的恢复。通常,解压缩会尝试恢复Zip存档中提供的提取项目的所有元信息(并且不需要特权或不会带来安全风险)。通过指定-D,告诉unzip禁止恢复从Zip存档条目显式创建的目录的时间戳。此选项仅适用于支持设置目录时间戳的端口(当前为ATheOS,BeOS,MacOS,OS / 2,Unix,VMS,Win32;对于其他解压缩端口,-D无效)。复制的选项-DD强制抑制所有提取的条目(文件和目录)的时间戳恢复。此选项导致将所有提取的条目的时间戳设置为当前时间。 在VMS上,此选项的默认设置为-D,以与BACKUP的行为保持一致:恢复文件时间戳记,在当前时间保留提取目录的时间戳记。要恢复目录时间戳,应指定否定的选项--D。在VMS上,选项-D禁用所有提取的Zip存档项目的时间戳恢复。(这里,命令行上的单个-D与默认的-D结合起来可以执行显式-DD 在其他系统上执行。) |
-E | [仅适用于MacOS ] 在还原操作期间显示MacOS Extra字段的内容。 |
-F | [仅橡子]禁止从存储的文件名中删除NFS文件类型扩展名。 |
-F | [非Acorn系统支持带有嵌入式逗号的长文件名,并且仅当使用ACORN_FTYPE_NFS定义时才进行编译]将来自ACORN RISC OS额外字段块的文件类型信息转换为NFS文件类型扩展名并将其附加到提取文件的名称中。(当存储的文件名看起来已经具有附加的NFS文件类型扩展名时,它将被多余字段中的信息替换。) |
-i | [仅适用于MacOS]忽略MacOS额外字段中存储的文件名。而是使用存储在条目标题的通用部分中的最兼容文件名。 |
-j | 垃圾路径。不会重新创建档案的目录结构;所有文件都存放在提取目录中(默认情况下是当前目录)。 |
-J | [仅适用于BeOS]垃圾文件属性。文件的BeOS文件属性不会恢复,仅文件的数据会恢复。 |
-J | [仅MacOS]忽略MacOS额外字段。跳过所有Macintosh特定信息。数据叉和资源叉将作为单独的文件还原。 |
-K | [仅AtheOS,BeOS,Unix)保留SUID / SGID / Tacky 文件属性。没有此标志,出于安全原因,将清除这些属性位。 |
-L | 将源自仅大写的操作系统或文件系统的任何文件名转换为小写。(这是5.11之前的发行版中unzip的默认行为;新的默认行为与带有-U选项的旧行为相同,该行为现在已过时,将在以后的版本中删除。)根据存档程序,在以下位置存档的文件单例文件系统(VMS,旧的MS-DOS FAT等)可以存储为全大写名称;当提取到一个保留大小写的文件系统(例如OS / 2 HPFS)或区分大小写的文件系统(例如在Unix下)时,这可能很丑陋或不便。默认情况下,解压缩会列出并提取与存储完全相同的文件名(截断除外),不支持的字符的转换等);此选项导致某些系统中所有文件的名称都转换为小写。该-LL每一个文件名的选项将强制转换为小写,无论原始文件系统。 |
-M | 通过类似于Unix more命令的内部寻呼机将所有输出通过管道传输。在屏幕显示的最后,解压缩暂停,并显示“ --More-- ” 提示;通过按Enter(返回)键或空格键可以查看下一屏。可以通过按“ q ”键以及在某些系统上按Enter / Return键终止解压缩。与Unix more不同,它没有前向搜索或编辑功能。另外,解压缩不会注意到是否在屏幕边缘缠绕了长行,从而有效地导致打印了两行或更多行,以及某些文本在被查看之前从屏幕顶部滚动的可能性。在某些系统上,未检测到屏幕上可用的行数,在这种情况下,解压缩假定高度为24行。 |
-n | 永远不会覆盖现有文件。如果文件已经存在,请跳过该文件的提取而无需提示。默认情况下,在解压缩任何存在的文件之前先解压缩查询;用户可以选择仅覆盖当前文件,覆盖所有文件,跳过当前文件的提取,跳过所有现有文件的提取或重命名当前文件。 |
-N | [ Amiga ]提取文件注释为Amiga文件注释。文件注释与创建-c的选项拉链,或与-N的Amiga的端口选项拉链,其门店filenotes为注释。 |
-o | 覆盖现有文件而无提示。这是一个危险的选择,因此请谨慎使用。(但是,它通常与-f一起使用,并且是覆盖OS / 2下目录EA的唯一方法。) |
-P password | 使用密码来解密加密的压缩文件条目(如果有的话)。这是不安全的!许多多用户操作系统为任何用户提供了查看其他任何用户的当前命令行的方法。即使在独立系统上,也始终存在过度偷看的威胁。将纯文本密码作为命令行的一部分存储在自动化脚本中的情况更加糟糕。尽可能使用无回声的交互式提示输入密码。(在真正重要的安全性方面,请使用强加密(例如,Pretty Good Privacy),而不要使用标准zipfile实用程序提供的相对弱的加密。) |
-q | 安静地执行操作(-qq =更加安静)。通常,解压缩会打印要提取或测试的文件的名称,提取方法,可能存储在归档文件中的任何文件或zipfile注释,以及在完成每个归档文件时的摘要。所述-q [ q ]选项抑制的一些或所有这些消息的打印。 |
-s | [OS / 2,NT,MS-DOS]将文件名中的空格转换为下划线。由于所有PC操作系统都在文件名中允许使用空格,因此默认情况下,解压缩会提取完整的文件名(例如,“ EA DATA。SF ”)。但是,这可能很尴尬,因为特别是MS-DOS并不优雅地支持文件名中的空格。在某些情况下,将空格转换为下划线可以消除尴尬。 |
-S | [VMS]将文本文件(-a,-aa)转换为Stream_LF记录格式,而不是文本文件默认的可变长度记录格式。(Stream_LF是VMS 解压缩的默认记录格式。除非请求转换(-a,-aa和/或-b,-bb)或处理特定于VMS的条目,否则它将应用。 |
-U |
[仅UNICODE_SUPPORT]修改或禁用UTF-8处理。当UNICODE_SUPPORT可用时,选项-U强制解压缩以将UTF-8编码文件名中的所有非ASCII字符转义为“ #Uxxxx ”(对于UCS-2字符,对于 “ Unicode代码点需要3 个八位字节 ” 则为 “ #Lxxxxxx ” )。当怀疑是相当新的UTF-8支持会破坏提取的文件名时,主要提供此选项用于调试。 选项-UU允许完全禁用UTF-8编码文件名的识别。解压缩文件名编码的方式可追溯到先前版本的行为。 [旧的,过时的用法]如果在MS-DOS,VMS等环境下创建文件名,则将其大写。请参见上面的-L。 |
-V | 保留(VMS)文件版本号。VMS文件可以使用版本号存储,格式为file.ext; ##。默认情况下,将删除“ ; ## ”版本号,但是此选项允许保留它们。(在将文件名限制为特别短的文件系统上,无论使用此选项如何,版本号都可能被截断或剥离。) |
-W |
[仅当启用WILD_STOP_AT_DIR编译时选项时]修改模式匹配例程,以便两个' ?'(单字符通配符)和' * '(多字符通配符)与目录分隔符' / ' 不匹配。(两个字符的序列“ ** ”用作多字符通配符,在其匹配字符中包括目录分隔符。)示例:
|
-X | [VMS,Unix,OS / 2,NT,Tandem] 在VMS下还原所有者/保护信息(UIC和ACL条目),在Unix下还原用户和组信息(UID / GID),或在某些网络下还原访问控制列表(ACL)的OS / 2版本(带有IBM LAN Server / Requester 3.0到5.0的Warp Server;带有IBM Peer 1.0的Warp Connect)或Windows NT下的安全ACL。在大多数情况下,这将需要特殊的系统特权,并且将NT下的选项(-XX)加倍会指示解压缩使用特权进行提取;但是例如,在Unix下,属于多个组的用户可以恢复这些组中任何一个拥有的文件,只要用户ID与自己的ID匹配即可。请注意,普通文件属性始终会还原-此选项仅适用于某些操作系统上可用的可选的额外所有权信息。[NT的访问控制列表似乎与OS / 2并不特别兼容,因此没有尝试跨平台的访问权限可移植性。] |
-Y | [VMS]将已归档文件名的结尾“ .nnn ”(其中“ nnn ”是十进制数字)视为它们是VMS版本号(“ ; nnn ”)。(默认是将它们视为文件类型。)例如:“ ab3 ”->“ ab; 3 ”。 |
-$ | 如果提取介质是可移动的(例如软盘),则[MS-DOS,OS / 2,NT]将恢复卷标。将选项(-$$)加倍也可以标记固定媒体(硬盘)。默认情况下,将忽略卷标。 |
-/ extension | [仅橡子]覆盖由Unzip $ Ext环境变量提供的扩展名列表。在提取过程中,与该扩展名列表中的一项匹配的文件扩展名会在提取文件的基本名称前交换。 |
-: | [除了Acorn,VM / CMS,MVS,Tandem以外的所有文件]允许将存档成员提取到当前“提取根文件夹”之外的位置。出于安全原因,解压缩通常会从提取文件的名称中删除“父目录”路径组件(“ ../ ”)。此安全功能(版本5.50的新增功能)可防止解压缩意外将文件写入活动提取文件夹树头外部的“敏感”区域。使用-:选项可将其解压缩,以切换回其先前的更自由的行为,以允许准确提取使用“ ../“组件可在当前提取文件夹级别创建多个目录树。此选项无法将其显式写入根目录(” / “)。要实现此目的,必须将提取目标文件夹设置为root(例如,-d /)。但是,当指定-:选项时,仍然可以通过在zip归档文件中指定足够的“ ../ ”路径组件来隐式写入根目录。请格外小心。 |
-^ | [仅限于Unix]允许在提取的zip归档条目的名称中包含控制字符。在Unix上,文件名可以包含任何(8位)字符代码,但带有两个例外' / '(目录定界符)和NUL(0x00(C字符串终止指示符),除非特定文件系统具有更多限制性约定。通常,至少在“本地” Unix文件系统上,这允许将ASCII控制字符(甚至复杂的控制序列)嵌入文件名中。但是,利用此Unix的“功能”可能非常可疑。当文件名中嵌入的控制字符在某些列表代码中在屏幕上显示时,如果没有足够的过滤,可能会带来讨厌的副作用。并且,对于普通用户而言,可能难以处理此类文件名(例如,当尝试为打开,复制,移动或删除操作指定文件名时)。因此,默认情况下,unzip应用一个过滤器,该过滤器从提取的文件名中删除潜在危险的控制字符。本- ^ 选项允许在有意恢复嵌入的文件名控制字符的极少数情况下覆盖此过滤器。 |
-2 | [VMS]强制将文件名无条件转换为ODS2兼容名称。默认设置是利用目标文件系统,在ODS5目标文件系统上保留大小写和扩展文件名字符;在ODS2目标文件系统上应用ODS2兼容性文件名过滤。 |
可以通过放置在环境变量中的选项来修改unzip的默认行为。可以使用任何选项来完成此操作,但是使用-a,-L,-C,-q,-o或-n修饰符可能最有用:默认情况下使unzip自动转换文本文件,使其转换为文件名从大写到小写,使其不区分大小写匹配名称,使其更安静,或者在提取文件时始终覆盖或从不覆盖文件。例如,要使解压缩尽可能安静地执行,仅报告错误,可以使用以下命令之一:
Unix Bourne shell:
UNZIP = -qq; 出口UNZIP
Unix C shell:
setenv UNZIP -qq
OS / 2或MS-DOS:
set UNZIP = -qq
VMS(小写报价):
define UNZIP_OPTS“ -qq”
实际上,环境选项被认为与任何其他命令行选项一样,只是它们实际上是命令行上的第一个选项。要覆盖环境选项,可以使用“减号运算符”将其删除。例如,要覆盖上面示例中的静默标志之一,请使用以下命令。
unzip--q [other options] zipfile
第一个连字符是普通开关字符,第二个是减号,作用于q选项。因此,这里的作用是消除一种安静。要取消两个安静标志,可以使用两个(或更多)负号:
unzip -t--q zipfile
unzip ---qt zipfile
(两者是等效的)。这可能看起来很尴尬或令人困惑,但它相当直观:只需忽略第一个连字符并从那里开始。这也与Unix nice的行为一致。
如上面的示例所建议,对于VMS ,默认变量名称是UNZIP_OPTS(否则,用于将unzip作为外部命令安装的符号将与环境变量混淆),对于所有其他操作系统,则为UNZIP。对于兼容性拉链,UNZIPOPT是可以接受的。但是,如果同时定义了UNZIP和UNZIPOPT,则UNZIP优先。unzip的诊断选项(-v,不带zipfile名称)可用于检查所有四个可能的unzip和zipinfo环境变量的值。
应根据本地时区设置时区变量(TZ),以使-f和-u正常运行。有关详细信息,请参见上面对-f的描述。要正确设置提取文件的时间戳,可能还需要使用此变量。假设已在“ 控制面板”中正确设置了解压缩的WIN32(Win9x / ME / NT4 / 2K / XP / 2K3)端口,则可从注册表获取时区配置。该端口的TZ变量被忽略。
解密Info-ZIP软件完全支持加密的存档,但是由于美国的出口限制,可能在您特定的编译二进制文件中禁用了解密/加密支持。但是,自2000年春季以来,美国的出口限制已被解除,我们的原始档案现在确实包含完整的密码。如果您需要启用了crypt支持的二进制发行版,请在任何Info-ZIP源或二进制发行版中查看文件“ WHERE ”,以获取美国境内和境外的位置。
某些解压缩的编译版本可能不支持解密。要检查版本是否支持crypt,请尝试测试或提取加密的归档文件,或者检查unzip的诊断屏幕(请参见上面的-v选项),以将“ [decryption] ”作为特殊的编译选项之一。
如上所述,-P选项可用于在命令行上提供密码,但是会增加安全性。首选的解密方法是正常提取。如果zipfile成员已加密,则unzip将提示您输入密码,而不回显键入的内容。只要测试12字节的标头,unzip就会继续使用相同的密码(只要它看起来有效)在每个文件上。正确的密码将始终根据标题检出,但是不正确的密码也有1-in-256的机会。(这是PKWARE zipfile格式的安全功能;它有助于防止蛮力攻击,否则仅通过测试标头就可以获得较大的速度优势。)如果输入了错误的密码,但无论如何它都会通过标头测试,将为提取的数据生成错误的CRC,或者在提取过程中解压缩失败,因为“已解密”字节不构成有效的压缩数据流。
如果第一个密码未能通过文件头检查,则解压缩将提示输入另一个密码,依此类推,直到提取所有文件为止。如果密码未知,则将输入空密码(即,仅输入回车或“ Enter”)作为跳过所有进一步提示的信号。此后,仅提取存档中未加密的文件。(实际上,事实并非如此;较早版本的zip和zipcloak允许使用空密码,因此,unzip检查每个加密文件以查看空密码是否有效。如上所述,这可能会导致“误报”和提取错误。)
用8位密码加密的档案(例如带有重音符号的欧洲字符的密码)可能无法在系统和/或其他档案中移植。此问题源于对此类字符使用了多种编码方法,包括Latin-1(ISO 8859-1)和OEM代码页850。DOSPKZIP 2.04g使用OEM代码页;而PKZIP 2.04g使用OEM代码页。Windows PKZIP 2.50使用Latin-1(因此与DOS PKZIP不兼容);Info-ZIP在DOS,OS / 2和Win3.x端口上使用OEM代码页,但在其他任何地方都使用ISO编码(Latin-1等)。Nico Mak的WinZip 6.x根本不允许8位密码。解压缩5.3(或更高版本)尝试首先使用默认字符集(例如Latin-1),然后使用替代字符集(例如OEM代码页)来测试密码。在EBCDIC系统上,如果这两种方法均失败,则将对EBCDIC编码进行最后测试。(由于没有已知的使用EBCDIC编码进行加密的存档器,因此未在非EBCDIC系统上进行EBCDIC的测试。)不支持Latin-1以外的ISO字符编码。UnZip 6.0中新增的(部分)Unicode(分别为UTF-8)支持尚未适应unzip中的加密密码处理。在使用UTF-8作为本机字符编码的系统上,解压缩尝试使用本地UTF-8编码密码解密;内置的尝试以翻译编码检查密码的尝试尚未适应UTF-8支持,因此将失败。
查看英文版
unzip 示例
unzip hope.zip
将hope.zip存档解压缩到当前目录中,根据需要创建子目录以匹配存档的文件层次结构。
unzip -j hope.zip
无论存档的内部目录结构如何,都仅将它们从文件hope.zip提取到当前目录中。
unzip -tq hope.zip
测试hope.zip是否存在错误,但不要提取任何内容。 q表示“安静”模式,该模式指示解压缩仅返回摘要消息,而不返回更详细的消息。
unzip -ca hope.zip *.txt
将归档文件hope.zip中包含的扩展名为.txt的所有文件的内容显示到标准输出。
unzip hope.zip "*.[ch]" Makefile -d /tmp
从hope.zip中将所有扩展名为.c和.h的C源文件以及任何名为Makefile的文件提取到目录/ tmp中。
unzip -C hope.zip "*.[ch]" Makefile -d /tmp
与上述命令相同,但不区分大小写; 它还会提取任何扩展名为.C或.H的文件,任何名为MAKEFILE的文件,任何名为MakeFile的文件,等等。
unzip -fo hope.zip
从存档的hope.zip中提取文件,但前提是它们是比已经存在的文件新的版本。
unzip -l hope.zip
在不提取任何内容的情况下显示hope.zip内容的清单。
查看英文版