在像Unix一样操作系统上,zipinfo命令列出了有关ZIP存档的技术信息。
查看英文版
1 zipinfo 运行系统环境
2 zipinfo 描述
3 zipinfo 语法
4 zipinfo 例子
Unix&Linux
查看英文版
zipinfo [-12smlvhMtTz] file[.zip] [file(s) ...] [-x xfile(s) ...]
参数
zipinfo命令采用以下参数:
file[.zip] |
zip存档的路径。如果文件规范是通配符,则每个匹配文件都按操作系统(或文件系统)确定的顺序进行处理。只有文件名可以是通配符;路径本身不能。通配符表达式类似于 Unix egrep 正则表达式,并且可能包含:
|
||||||
file... | 要处理的存档成员的可选列表,用空格分隔。正则表达式或通配符可用于匹配多个成员;见上文。同样,请务必引用操作系统将展开或修改的表达式。 | ||||||
- x x file... | 要从处理中排除的存档成员的可选列表。 |
选项
-1 | 仅列出文件名,每行一个。此选项不包括所有其他选项;标题、预告片和 zipfile注释永远不会打印。它用于 Unix shell脚本。 |
-2 | 仅列出文件名,每行一个,但允许标题 (-h), 拖车 (-t) 和 zipfile 注释 (-z), 以及。在存储的文件名特别长的情况下,此选项可能很有用。 |
- s | 列出 zipfile 信息在短 Unix [ls - l] 格式。这是默认行为。 |
- m | 以中等 Unix[ls -l] 格式列出 zipfile信息。与-s 输出相同,但也会列出压缩因子(以百分比表示)。 |
- l | 以长 Unix[ls -l] 格式列出 zipfile信息。与-m 一样,只是压缩大小(以字节为单位)是打印的,而不是压缩比。 |
- v | 以详细、多页格式列出 zipfile 信息。 |
- h | 列出标题行。将打印存档名称、实际大小(以字节为单位)和文件总数。 |
-M | 通过类似于更多命令的内部寻呼机管道所有输出。在输出屏幕的末尾,zipinfo暂停一个"-more-"提示;可以通过按"输入(返回)"键或空格键来查看下一个屏幕。zipinfo可以通过按q键终止,在某些系统上,也可以按 Enter/返回键来终止。与更多不同,没有前瞻搜索或编辑功能。此外,zipinfo不会注意到长行是否环绕在屏幕边缘,从而有效地打印了两行或多行,并且某些文本在查看之前可能会从屏幕顶部滚动下来。在某些系统上,未检测到屏幕上的可用行数,在这种情况下,zipinfo假定高度为 24 行。 |
- t | 列出列出的文件或所有文件的总计。打印列出的文件数、未压缩和压缩的总大小以及整体压缩系数;或者,如果仅打印总计行,则给出整个存档的值。压缩的总大小不包括每个加密条目的 12 个附加标头字节。请注意,总压缩(数据)大小将永远不会与实际 zipfile 大小匹配,因为后者包括除压缩数据之外的所有内部 zipfile 标头。 |
- t | 以可排序的十进制格式(yymmd.hhmms) 打印文件日期和时间。默认日期格式是具有缩写月份名称的更标准、更人性化可读的版本。 |
- U |
修改或禁用 UTF-8 处理。当UNICODE_SUPPORT时,选项-U强制解压缩以将 UTF-8 编码文件名中的所有非 ASCII 字符转义为"#Uxxxx"。此选项主要用于调试目的,当怀疑有相当新的 UTF-8 支持来清理提取的文件名时。 -UU允许完全禁用 UTF-8 编码文件名的 识别。在解压缩中处理文件名编码可追溯到以前版本的行为。 |
- z | 在列表中包括存档注释(如果有)。 |
技术细节
zipinfo有许多模式,如果不熟悉Unix ls,它的行为可能相当难以理解。默认行为是以以下格式列出文件:
-rw-rws--- 1.9 unx 2802 t- defX 11-Aug-91 13:48 perms.2660
最后三个字段是文件的修改日期和时间及其名称。文件名的大小写得到尊重;因此,来自 MS-DOS PKZIP 的文件始终大写。如果文件使用存储的目录名压缩,则该文件也将显示为文件名的一部分。
第二个和第三个字段表示文件在 Unix 下压缩了 zip的版本 1.9 。由于它来自 Unix,因此行开头的文件权限以 Unix 格式打印。未压缩的文件大小(本例中为 2802)是第四个字段。第五个字段由两个字符组成,其中一个可以包含多个值。第一个字符可以是[t]或[b],表示zip认为文件分别是文本或二进制文件。如果文件已加密,zipinfo会通过大写字符("T"或"B")来记录这一事实。第二个字符还可以包含四个值,具体取决于是否有扩展的本地标头或与文件关联的"额外字段"(它们提供了在存档中包含非标准信息的标准方法)。如果两者都不存在,则字符将是连字符 ("-");如果有一个扩展的本地标头,但没有额外的字段,"l";如果相反,[x];如果两者都存在,[X]。因此,此示例中的文件(可能)是文本文件,未加密,并且既没有额外的字段,也没有与之关联的扩展本地标头。另一方面,下面的示例是一个加密的二进制文件,具有额外的字段:
RWD,R,R 0.9 vms 168 Bx shrk 9-Aug-91 19:15 perms.0644
额外的字段用于各种目的(请参阅下面的-v选项的讨论),包括 VMS 文件属性的存储,这里大概就是这种情况。这些文件属性以 VMS 格式列出。主机操作系统的一些其他可能性(这实际上是一个用词不当的主机文件系统更正确)包括OS/2或NT与高性能文件系统(HPFS),MS-DOS,OS/2或NT文件分配表(FAT)文件系统,和Macintosh。 这些表示如下:
-rw-a-- 1.0 hpf 5358 Tl i4:3 4-Dec-91 11:33 longfilename.hpfs -r--ahs 1.1 fat 4096 b- i4:2 14-Jul-91 12:58 EA DATA. SF --w------- 1.0 mac 17357 bx i8:2 4-May-92 04:02 unzip.macr
前两种情况下的文件属性以一种与 Unix 一样表示的格式,其中七个子字段指示文件是否:
最后,第六个字段指示压缩方法和可能的子方法。目前有六种已知方法:存储(无压缩)、减少、收缩、内爆、标记化(从未公开发布)和放气。此外,有四个级别的减少(1到4);四种类型的内爆(4K或8K滑动字典,和2或3香农-法诺树);和四个级别的放气(超快,快,正常,最大压缩)。zipinfo表示这些方法及其子方法如下: stor;re:1、re:2 等;shrk;i4:2,i8:3 等;tokn;和 defs, deff, defn 和 defx 。
中长列表几乎与短格式相同,只是它们增加了有关文件压缩的信息。中等格式将文件的压缩系数列出为指示已"删除"的空间量的百分比:
-rw-rws--- 1.5 unx 2802 t- 81% defX 11-Aug-91 13:48 perms.2660
在此示例中,文件压缩了五分之一多;压缩数据只有原始大小的 19%。长格式以字节为单位提供压缩文件的大小,而不是:
-rw-rws--- 1.5 unx 2802 t- 538 defX 11-Aug-91 13:48 perms.2660
与解压缩列表不同,此列表格式中的压缩大小表示压缩数据的完整大小,包括加密条目的 12 个额外的标头字节。
添加-T 选项会将文件日期和时间更改为十进制格式:
-rw-rws--- 1.5 unx 2802 t- 538 defX 910811.134804 perms.2660
请注意,由于用于存储文件时间的 MS-DOS 格式的限制,秒字段始终四舍五入到最接近的甚至秒。对于 Unix 文件,这预计将改变在 zip 和解压缩的下一个主要版本。
除了单个文件信息外,默认 zipfile 列表还包括标题行和尾部行:
Archive: OS2.zip 5453 bytes 5 files ,,rw, 1.0 hpf 730 b- i4:3 26-Jun-92 23:40 Contents ,,rw, 1.0 hpf 3710 b- i4:3 26-Jun-92 23:33 makefile.os2 ,,rw, 1.0 hpf 8753 b- i8:3 26-Jun-92 15:29 os2unzip.c ,,rw, 1.0 hpf 98 b- stor 21-Aug-91 15:34 unzip.def ,,rw, 1.0 hpf 95 b- stor 21-Aug-91 17:51 zipinfo.def 5 files, 13386 bytes uncompressed, 4951 bytes compressed: 63.0%
标题行提供存档的名称、总大小和文件总数;预告片提供列出的文件数、它们的总未压缩大小及其总压缩大小(不包括任何 zip 的内部开销)。但是,如果提供了一个或多个文件,则不会列出标题行和尾部行。这种行为也类似于Unix的"ls-l";可以通过显式指定-h和-t 选项来覆盖它。在这种情况下,还必须显式指定列表格式,因为在没有其他选项的情况下,-h或-t(或两者)意味着仅列出标题或尾部行(或两者)。
冗长的清单大多不言自明。它还列出文件注释和 zipfile 注释(如果有)以及任何存储的额外字段中的字节类型和数量。目前已知的额外字段类型包括 PKWARE 的身份验证 ("AV") 信息;OS/2 扩展属性;VMS 文件系统信息,包括 PKWARE 和信息 ZIP 版本;麦金托什资源叉;橡子/阿基米德火花信息;等等。(请注意,在 OS/2 扩展属性(可能是 zipfile 额外字段的最常见用途);zipinfo 报告的存储 EA 的大小可能与 OS/2 的 dir 命令给出的数字不匹配:OS/2 始终以16 位格式报告所需的字节数,而 zipinfo 始终报告32 位存储。
同样,各个条目的压缩大小数字包括加密条目的 12 个额外的头字节。相比之下,在计算未额外 12 个头字节的加密条目的情况下,计算摘要底线中显示的存档总压缩大小和平均压缩比。
环境选项
通过放置在环境变量中的选项修改zipinfo的默认行为可能有点复杂,因为 zipinfo尝试以直观但与 Unix 一样的方式处理各种默认值。然而,有一些基本的逻辑。简言之,选项有三个"优先级":默认选项;默认选项。默认选项,默认环境选项,可以覆盖或添加到默认值;和用户给出的显式选项,这些选项可以覆盖或添加到上述任一选项中。
如上所述,默认列表格式大致对应于"zipinfo -hst"命令(指定了单独的 zipfile 成员时除外)。喜欢长列表格式 (-l) 的用户可以使用 zipinfo 的环境变量使用以下方法更改此默认值:
在 Unix伯恩壳:
ZIPINFO=-l; export ZIPINFO
在 Unix C 外壳中:
setenv ZIPINFO -l
在 OS/2 或 MS-DOS 中:
set ZIPINFO=-l
在 VMS 中(小写的报价):
define ZIPINFO_OPTS "-l"
此外,如果用户不喜欢拖车行,zipinfo的"负面选项"概念可用于覆盖该行的默认包含。这是通过前面的一个或多个减号不需要的选项来完成的:例如,在此示例中的"-l-t"或"--tl"。第一个连字符是常规开关字符,但[t]之前是一个减号。连字符的双重用途可能看起来有点尴尬,但它还是相当直观:忽略第一个连字符,然后从那里开始。它也与Unix命令尼斯的行为一致。
如上文所示,VMS 的默认变量名称为 ZIPINFO_OPTS(用于将zipinfo安装为外国命令的符号将与环境变量混淆),并且所有其他操作系统的 ZIPINFO为 ZIPINFO_OPTS。为了与 zip兼容,也接受 ZIPINFOOPT。但是,如果定义了 ZIPINFO 和 ZIPINFOOPT,则 ZIPINFO 优先。解压缩的诊断选项(-v没有 zipfile 名称)可用于检查所有四个可能的unzip和 zipinfo 环境变量的值。
查看英文版
zipinfo hope
显示有关存档hope.zip。输出将类似于以下内容:
Archive: hope.zip 9628445 bytes 25 files -rw-r--r-- 2.3 unx 282667 tx defN 18-Jul-11 14:17 badips.txt -rw-r--r-- 2.3 unx 46177980 tx defN 18-Jul-11 04:45 hijacklogs.txt -rw-r--r-- 2.3 unx 231984 tx defN 18-Jul-11 13:01 isitup.txt . . . 25 files, 60757943 bytes uncompressed, 9625041 bytes compressed: 84.2%
查看英文版
未知的网友