# zipinfo - 用来列出压缩文件信息

在不解压的情况下,获取zip压缩文件的的详细信息。zipinfo列出了ZIP档案中有关文件的技术信息,最常见的是在MS-DOS系统上。这些信息包括文件访问权限、加密状态、压缩类型、版本和操作系统或压缩程序的文件系统等。默认的行为(没有选项)是列出存档中每个文件的单线条目,标题和拖车行为整个归档提供摘要信息。格式是Unix‘ls-l’和‘unzip-v’输出之间的交叉。见下文的详细说明。请注意,zipinfo与解压缩程序相同(在Unix下,链接到它);然而,在某些系统上,在解压缩编译时可能忽略了zipinfo支持。

# 适用范围

RedHat
RHEL
Ubuntu
CentOS
Debian
Deepin
SUSE
openSUSE
Fedora
Linux Mint
Alpine Linux
Arch Linux

# 语法

zipinfo  [-12smlvhMtTz]  file[.zip]  [file(s) ...]  [-x xfile(s) ...]

# 选项

file[.zip]        # ZIP存档的路径。如果文件规范是通配符,则按操作系统(或文件系统)确定的顺序处理每个匹配的文件。只有文件名可以是通配符;路径本身不能。通配符表达式类似于unix egrep(1)(正则)表达式,可能包含
[file(s)]         # 要处理的归档成员的可选列表,用空格分隔。(用VMSCLI定义的VMS版本必须用逗号分隔文件。)正则表达式(通配符)可用于匹配多个成员;参见上文。同样,请务必引用否则将由操作系统展开或修改的表达式。
[-x xfile(s)]     # 要排除在处理之外的归档成员的可选列表。
-1               # 只列出文件名称
-2               # 和“-1”类似,但是可以单配其他选项“-h”、-i”、-z”
-s               # 类似“ls –l”的短格式
-m               # 类似“ls -l”的medium格式
-l               # 类似“ls -l”的长格式
-v               # 显示zip文件的详细信息
-h               # 只列出压缩包的文件名、大小、包内文件数目
-M               # 类似more命令,分屏显示
-t               # 列出压缩文件内的文件数目、压缩前后文件大小、压缩率
-T               # 将压缩包内文件的日期以年、月、日、时、分、秒的顺序列出
-z               # 显示压缩文件的注释信息

--help           # 显示帮助文档
--version        # 显示命令版本信息

# 用例

要获得包含头行和总计行的ZIP存档Storage.zip的完整内容的基本的、简短的列表,只使用归档名称作为zipinfo的参数。

zipinfo  storage

要生成一个基本的、长格式的列表(而不是冗长的),包括标题和总计行,请使用-l:

zipinfo  -l  storage

要列出没有标题和总计行的存档的完整内容,可以忽略-h和-t选项,或者显式地指定内容:

zipinfo  --h-t  storage
zipinfo  storage  \*

默认情况下,若要关闭汇总行,请使用环境变量(此处假定为C shell):

setenv  ZIPINFO  --t
zipinfo  storage

为了再次获得第一个示例的完整、简短的列表,考虑到前面示例中设置了环境变量,有必要显式地指定-s选项,因为-t选项本身意味着只打印页脚行

setenv  ZIPINFO  --t
zipinfo  -t  storage            [only totals line]
zipinfo  -st  storage           [full listing]  

若要以中等格式列出存档中单个文件的信息,请显式指定文件名。

zipinfo  -m  storage  unshrink.c

任何成员文件的规范都将覆盖默认的标头和总计行;将只打印有关请求文件的一行信息。这是在请求有关单个文件的信息时所期望的直观结果。对于多个文件,了解总的压缩和未压缩大小通常是有用的;在这种情况下,可以显式地指定-t:

zipinfo  -mt  storage  "*.[ch]"  Mak\*

要获取有关ZIP存档的最大信息,请使用详细选项。如果操作系统允许,通常明智的做法是将输出输送到Unix More(1)这样的过滤器中:

zipinfo  -v  storage | more

要查看存档中最近修改的文件,请结合外部排序实用程序(如Unix Sort(1)和sed(1)使用-T选项

zipinfo  -T  storage | sort  –nr  -k  7 | sed  15q

# 举例

[sogrey@bogon 文档]$ ll
总用量 24
-rw-------. 1 sogrey sogrey   0 39 00:44 1.c
-rw-------. 1 sogrey sogrey   0 39 00:44 2.c
-rw-------. 1 sogrey sogrey   0 39 00:44 3.c
-rw-------. 1 sogrey sogrey 337 38 23:50 file1.txt.gz
-rw-------. 1 sogrey sogrey 576 38 23:51 file2.txt
-rw-------. 1 sogrey sogrey  12 39 00:43 list.txt
-rw-------. 1 sogrey sogrey 508 311 00:05 res2.zip
-rw-------. 1 sogrey sogrey 424 311 00:04 res.zip
-rwx------. 1 sogrey sogrey  90 39 00:23 run.sh
[sogrey@bogon 文档]$ zipinfo res.zip # 查看压缩包内文件信息
Archive:  res.zip
Zip file size: 424 bytes, number of entries: 3
-rw-------  3.0 unx        0 bx stor 21-Mar-09 00:44 2.c
-rw-------  3.0 unx        0 bx stor 21-Mar-09 00:44 3.c
-rw-------  3.0 unx        0 bx stor 21-Mar-09 00:44 1.c
3 files, 0 bytes uncompressed, 0 bytes compressed:  0.0%
[sogrey@bogon 文档]$ zipinfo -h res.zip # 只显示压缩包大小、文件数目
Archive:  res.zip
Zip file size: 424 bytes, number of entries: 3
[sogrey@bogon 文档]$