手册页部分 1: 用户命令

退出打印视图

更新时间: 2014 年 7 月
 
 

pack(1)

名称

pack , pcat , unpack - 压缩和解压缩文件

用法概要

pack [-f/] [-] file...
pcat file...
unpack [-/] file...

描述

pack

pack 命令会尝试以压缩格式存储指定文件。如果可能(并且有用),每个输入文件 file 都会替换为打包文件 file.z,而且后者与 file 拥有相同的访问模式、访问和修改日期以及所有者。如果 pack 成功,则会删除 file

压缩程度取决于输入文件的大小和字频分布。因为每个 .z 文件的第一部分由解码树构成,所以通常不值得打包小于三个块的文件,除非字频分布非常倾斜,而这种情况会出现在打印绘图或图片上。

通常,文本文件的大小会降至原始大小的 60-75%。装入模块由于使用了更大的字符集并且具有更加一致的字符分布,因此压缩程度较小,其打包后的大小约为原始大小的 90%。

pack 实用程序会返回一个值,即压缩失败的文件的数量。如果文件数量超过 255,则返回 255

如果出现以下情况,则不进行打包:

  • 文件看起来已经过打包

  • 文加名太长,无法添加 .z 后缀

  • 文件有链接

  • 文件是一个目录

  • 文件无法打开

  • 文件为空

  • 打包时未保存任何磁盘存储块

  • 名为 file.z 的文件已存在

  • 无法创建 .z 文件

  • 处理过程中发生 I/O 错误。

文件名的最后部分必须足够短,以便为附加的 .z 扩展名留出空间。目录无法压缩。

pcat

pcat 命令对打包文件执行的操作即为 cat(1) 对原始文件执行的操作,但 pcat 不能用作过滤器。对指定文件进行解压缩并写入标准输出。

pcat 会返回无法解压缩的文件的数量。出现以下情况时会发生故障:

  • 文件无法打开;

  • 文件看起来不是 pack 的输出。

unpack

unpack 命令用于解压缩 pack 所创建的文件。对于在此命令中指定的每个 file,系统会对称作 file.z(或者只是 file,如果 file.z 结尾)的文件执行搜索。如果此文件看上去是打包文件,则替换为它的解压缩版本。新文件会删除其名称中的 .z 后缀,并且与打包文件有着相同的访问模式、访问和修改日期以及所有者。

unpack 会返回一个值,即无法解压缩的文件的数量。除了与 pcat 中相同的故障原因外,它还会在以下情况下发生故障:

  • 具有解压缩名称的文件已存在;

  • 无法创建解压缩文件。

选项

pack 支持以下选项:

–f

强制对 file 进行打包。这有助于打包整个目录,即使有些文件不会从中受益。使用 unpackpcat 可以将打包文件恢复到原始格式。

packunpack 支持以下选项:

–/

打包或解压缩时,将任何与源文件相关的 ACL 和扩展系统属性都复制到目标文件。如果无法复制 ACL 或扩展系统属性,则保留原始文件,向 stderr 写入一条诊断消息,且最终退出状态为非零值

操作数

支持下列操作数:

file

要打包、解压缩或执行 pcat 命令的文件的路径名;file 可以包含或忽略 .z 后缀。

pack 会逐字节使用霍夫曼(最小冗余)编码。如果使用 参数,则会设置一个内部标志,使每个字节的使用次数、相对频率和字节代码输出到标准输出中。使用更多 替换 file 会使得系统设置和重置内部标志。

用法

有关 packpcatunpack 遇到大于或等于 2 GB (231 字节)文件时行为的说明,请参见 largefile(5)

示例

示例 1 查看打包文件

要查看名为 file.z 的打包文件,请使用:

example% pcat file.z

或仅使用:

example% pcat file

示例 2 制作解压缩副本:

要制作名为 file.z 的打包文件的解压缩副本,例如 nnn(同时不损坏 file.z),请使用命令:

example% pcat file >nnn

环境变量

有关影响 packpcat unpack 执行的 LC_CTYPE、LC_MESSAGES 和 NLSPATH 环境变量的描述,请参见 environ(5)

退出状态

将返回以下退出值:

0

成功完成。

>0

出现错误。返回命令未能打包/解压缩的文件的数量。如果失败数量超过 255,则返回 255

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
system/core-os
CSI
Enabled(已启用)

另请参见

cat(1)compress(1)zcat(1)fgetattr(3C)fsetattr(3C)attributes(5)environ(5)largefile(5)