使用 pack 命令压缩文件

使用 pack 命令使用 Huffman 编码以压缩格式存储由 File 参数指定的一个或多个文件。

输入文件由压缩文件替换,该压缩文件的名称从原文件名(File.z)派生,并与原文件有相同的访问方式、访问和修改日期以及所有者。 输入文件名包含不超过 253 个字节,以允许有空间添加 .z 后缀。 如果 pack 命令成功执行,原始文件就被除去。

使用 unpack 命令将已压缩的文件恢复为其原始格式。

如果 pack 命令不能创建较小的文件,那么它停止处理并报告不能节省空间。 (无法节省空间一般发生于小文件或具有统一字符分发的文件。) 节省的空间量取决于输入文件的大小和字符频率分布。 因为解码树构成了每个树的第一部分。z 文件,您不会使用小于三个块的文件来节省空间。 通常,文本文件减小百分之 25 到 40。

pack 命令的退出值是它不能压缩的文件的数量。 在任何以下条件下不能进行压缩:

  • 文件已压缩。
  • 输入文件名包含的字节数大于 253。
  • 文件有链接。
  • 文件是一个目录。
  • 文件无法打开。
  • 压缩未节省存储块。
  • 名为 File.z 的文件已存在。
  • 无法创建 .z 文件。
  • 处理期间发生 I/O 错误。
例如,要压缩文件 chap1chap2,请输入以下命令:
pack chap1 chap2
此命令将压缩 chap1chap2,并用名为 chap1.zchap2.z 的文件替换它们。 pack 命令会显示每个文件的压缩百分比。