pack命令会尝试以压缩格式存储指定文件。如果可能(并且有用),每个输入文件 file 都会替换为打包文件 file.z,而且后者与 file 拥有相同的访问模式、访问和修改日期以及所有者。如果 pack 成功,则会删除 file。
压缩程度取决于输入文件的大小和字频分布。因为每个 .z 文件的第一部分由解码树构成,所以通常不值得打包小于三个块的文件,除非字频分布非常倾斜,而这种情况会出现在打印绘图或图片上。
通常,文本文件的大小会降至原始大小的 60-75%。装入模块由于使用了更大的字符集并且具有更加一致的字符分布,因此压缩程度较小,其打包后的大小约为原始大小的 90%。
pack实用程序会返回一个值,即压缩失败的文件的数量。如果文件数量超过 255,则返回 255。
如果出现以下情况,则不进行打包:
文件看起来已经过打包
文加名太长,无法添加 .z 后缀
文件有链接
文件是一个目录
文件无法打开
文件为空
打包时未保存任何磁盘存储块
名为 file.z 的文件已存在
无法创建 .z 文件
处理过程中发生 I/O 错误。
文件名的最后部分必须足够短,以便为附加的 .z 扩展名留出空间。目录无法压缩。
用法
pack [-] [-f] name ...
选项
pack 支持以下选项:
–f:强制对 file 进行打包。这有助于打包整个目录,即使有些文件不会从中受益。使用 unpack 或 pcat 可以将打包文件恢复到原始格式。
–/:打包或解压缩时,将任何与源文件相关的 ACL 和扩展系统属性都复制到目标文件。如果无法复制 ACL 或扩展系统属性,则保留原始文件,向 stderr 写入一条诊断消息,且最终退出状态为非零值。
实例
压缩档案
pack dictionary