compress 命令详解

| 选择喜欢的代码风格  

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

compress 命令安装:


-bash: compress command not found

#Debian
apt-get install ncompress

#Ubuntu
apt-get install ncompress

#Kali Linux
apt-get install ncompress

#CentOS
yum install ncompress

#Fedora
dnf install ncompress

#OS X
brew install ncompress

#Raspbian
apt-get install ncompress

compress 命令补充说明:


compress 命令使用 Lempress-Ziv 编码压缩数据文件。compress 是个历史悠久的压缩程序,文件经它压缩后,其名称后面会多出 .Z 的扩展名。当要解压缩时,可执行 uncompress 指令。事实上 uncompress 是指向 compress 的符号连接,因此不论是压缩或解压缩,都可通过 compress 指令单独完成。

compress 命令语法:


compress [ -f ] [ -v ] [ -c ] [ -V ] [ -r ] [ -b bits ] [ name ... ]
uncompress [ -f ] [ -v ] [ -c ] [ -V ] [ name ... ]
zcat [ -V ] [ name ... ]

compress 命令选项:


-f/-F:不提示用户,强制覆盖掉目标文件;-f 和 -F 标志是可以互换的。如果 File.Z 文件存在则覆盖它。
-c:将结果送到标准输出,无文件被改变;
-C:产生与 Berkeley 软件分发 (BSD) R2.0 版本兼容的输出。
-r:递归的操作方式;
-b<压缩效率>:压缩效率是一个介于9~16的数值,预设值为"16",指定愈大的数值,压缩效率就愈高;,算法首先用全部 9 位编码(257 到 512)来替换尽可能多的子串。然后用所有 10 位以及其他编码继续该工作,直到达到 -b 标志指定的限制。
-d:对文件进行解压缩而非压缩;使 compress 命令像 uncompress 命令完全一样工作。
-n:省略压缩文件中的压缩文件头。注意:如果使用该选项,那么在使用 uncompress 命令解压文件时也应使用 -n 标志。
-q:禁止显示由 -v 标志生成的压缩统计信息。如果几个 -v 和 -q 标志在同一命令行上,那么最后一个指定的标志控制统计信息的显示。
-v:显示指令执行过程;
-V:显示指令版本及程序预设值。

compress 命令参数:


文件:指定要压缩的文件列表。

compress 命令返回值:


如果有错误,那么退出状态是 1。如果 compress 命令未压缩文件而退出,那么退出状态是 2。否则,compress 命令退出状态是 0。

compress 命令在发生以下任何事件时,检测到错误并以状态 1 退出

  • 输入文件不是常规文件。
  • 输入文件名太长而不能添加 .Z 后缀名。
  • 输入文件不可读出或输出文件不可写入。

compress 命令实例:


要压缩 foo 文件并将压缩百分比写入标准错误,请输入:

compress -v foo

foo 文件被压缩并重命名为 foo.Z。

将 man.config 压缩成另外一个文件来备份

[root@localhost tmp]# compress -c man.config > man.config.back.Z
[root@localhost tmp]# ll man.config*

-rw-r--r-- 1 root root 4506 Jul 27 11:43 man.config
-rw-r--r-- 1 root root 2605 Jul 27 11:46 man.config.back.Z

这个 -c 的选项比较有趣!会将压缩过程的资料输出到屏幕上,而不是写入成为 file.Z 文件。所以,我们可以透过资料流重导向的方法将资料输出成为另一个档名。

compress 命令的坑:


注意:如果指定的文件的路径大于 1023 字节,该命令不工作。如果没有指定文件,标准输入将被压缩到标准输出。如果压缩没有减少文件大小,将对标准错误写一个消息而不替换原文件。

注意:必须有正确许可权来替换文件。

压缩量依赖于输入大小、由 Bits 变量指定的单位编码的位数和公共子串的分布。典型地,源代码或英文文本将减少 50% 到 60%。compress 命令的压缩一般比利用哈夫曼编码或自适应哈夫曼编码实现的压缩更紧凑,计算时间更少,(哈夫曼编码在 pack 命令中被使用)。

compress 命令扩展阅读:




compress 命令评论