compress, uncompress, zcat - 压缩、解压缩文件或显示扩展的文件
compress [-fv/] [-b bits] [file]...
compress -c [-fv] [-b bits] [file]
uncompress [-fv] [-c | -/] [file]...
zcat [file]...
compress 实用程序尝试使用自适应 Lempel-Ziv 编码来降低指定文件的大小。除输出为标准输出外,每个文件都由扩展名为 .Z 的文件所替代,同时保持相同的所有权模式、更改时间和修改时间、ACL 以及扩展属性。压缩实用程序同样会尝试将 file.z 的所有者和组设置为文件的所有者和组,但即使无法完成这一操作也不会失败。如果将 .Z 附加至文件路径名会导致路径名超过 1023 字节,则命令失败。如果未指定文件,则标准输入会压缩到标准输出。
获得的压缩数量取决于输入大小、每个代码的 bits 数量和常用子串的分布。一般情况下,源代码或英文之类的文本会降低 50-60%。压缩通常比使用 Huffman 编码进行归档好得多,并且所需的计算时间更少。在压缩期间指定的 bits 参数会与幻数一起编码至压缩文件,以确保之后无法解压随机数据或重新压缩已压缩的数据。
使用 compress 实用程序压缩文件后,uncompress 实用程序会将这些文件恢复到原始状态。如果未指定文件,则标准输入会解压缩到标准输出。
该实用程序支持解压缩任何由 compress 生成的文件。对于 compress 在其他系统上生成的文件,uncompress 支持 9 到 16 位压缩(请参见 –b)。
zcat 实用程序会将使用 compress 压缩的解压形式的文件写入到标准输出。这等效于 uncompress–c。输入文件不受影响。
支持以下选项:
为通用子串代码设置上限(以位为单位)。bits 必须介于 9 和 16 之间(16 为缺省值)。降低位数将产生更大的、压缩较少的文件。
写入到标准输出;无文件更改,无 .Z 文件创建。zcat 的行为等同于 "uncompress –c" 的行为。
会在压缩过程中强制压缩 file,即使该操作不会真正降低文件大小,或者即使已存在对应的 file.Z 文件。
如果未指定 –f 选项,且进程没有在后台运行,则系统会提示您确认是否应该覆盖现有文件。如果回答是肯定的,则会覆盖现有文件。解压缩过程中不会显示覆盖文件的提示。如果未指定 –f 选项,且进程没有在后台运行,则系统会提示您确认是否应该覆盖现有文件。如果标准输入不是终端,且未指定 –f,则会向标准错误写入一条诊断消息,并以大于 0 的状态退出。
详细模式。写入到关于每个文件的降低或扩展百分比的标准错误消息。
在压缩或解压缩过程中,会将与源文件相关联的任何扩展系统属性复制到目标文件,并将与源文件扩展属性相关联的任何扩展系统属性复制到与目标文件相关联的对应扩展属性。如果有任何扩展系统属性无法复制,则保留原始文件,向 stderr 写入一条诊断消息,且最终退出状态为非零值。
支持下列操作数:
由 compress 压缩、uncompress 解压缩的文件或其解压缩形式被 zcat 写入到标准输出的文件的路径名。如果 file 为 -,或如果未指定 file,则使用标准输入。
有关影响 compress、uncompress 和 zcat 执行的以下环境变量的说明,请参见 environ(7):LANG、LC_ALL、LC_COLLATE、LC_CTYPE、LC_MESSAGES 和 NLSPATH。
肯定的回答使用为用户语言环境中 LC_MESSAGES 类别的 yesexpr 关键字定义的扩展正则表达式进行处理。LC_COLLATE 类别中指定的语言环境定义为 yesexpr 定义的表达式中使用的范围、等效类和多字符整理元素的行为。LC_CTYPE 中指定的语言环境确定文本数据字符字节序列解释的语言环境,以及为 yesexpr 定义的表达式中使用的字符类的行为。请参见 locale(7)。
将返回以下错误值:
成功完成。
出现错误。
因大小会增加(且未指定 –f 选项),一个或多个文件未被压缩。
出现错误。
有关下列属性的说明,请参见 attributes(7):
|
ln(1)、fgetattr(3C)、fsetattr(3C)、attributes(7)、environ(7)、locale(7)、standards(7)
在命令行指定了无效选项。
在命令行指定了无效选项。
最大位数必须遵循 –b,或最大位数无效,并非数值。
未压缩指定为 uncompress 的文件。
可在此计算机上处理比压缩码位数更多的程序压缩了 file。以更小位数重新压缩文件。
假定该文件已经压缩。重命名文件并重试。
如果希望替换输出文件,则回答 y;否则回答 n。
检测到 SIGSEGV 违规,这通常意味着输入文件损坏。
压缩节省的输入百分比。(仅与 –v 相关。)
如果输入文件不是常规文件(如目录),则会保留不变。
输入文件拥有链接;保留不变。有关更多信息,请参见 ln(1)。
压缩未实现空间节省。输入未压缩。
文件名太长,无法附加 .Z 后缀。
无法复制扩展系统属性。
尽管压缩文件可在具有大型内存的计算机间兼容,但应该为具有小型处理数据空间(64KB 或更小)的体系结构使用 –b 12 来传输文件。
compress 应该对 . Z 后缀的存在更加灵活。