1 compress 和 uncompress

此工具来自于ncompress包,此工具目前已经很少使用

对应的文件是 .Z 后缀

格式

compress [OPTION]... [FILE]...
uncompress [OPTION]... [FILE]...

#常用选项
-d   #解压缩,相当于于uncompress
-c   #结果输出至标准输出,不删除原文件
-f   #覆盖己存在目标文件
-v   #显示过程
-r   #递归压缩目录里面所有文件

来自于 gzip 包

对应的文件是 .gz 后缀

格式:

gzip [OPTION]... FILE ...
gunzip [OPTION]... FILE ...

#常用选项
-c|--stdout      #将压缩数据输出到标准输出中,并保留原文件
-d|--decompress  #解压缩,相当于gunzip
-f|--force       #覆盖己存在目标文件
-k|--keep        #保留原文件
-l|--list        #显示原文件大小,压缩文件大小,压缩比,压缩前文件名
-q|--quiet       #安静模式,忽略警告
-r|--recursive  #递归压缩目录内所有文件
-S|--suffix=SUF #指定压缩文件后缀
-t|--test       #测试,检测压缩文件是否完整
-v|--verbose    #显示过程
-1|--fast       #最快压缩,压缩比最底,但压缩速度快
-9|--best       #最好压缩,压缩比最高,但压缩速度慢
-N			    #指定压缩等级,取值为1-9之间,默认6

2.bzip2和bunzip2

来自于 bzip2 包

对应的文件是 .bz2 后缀

格式:

bzip2 [OPTION]... FILE ...
bunzip2 [OPTION]... FILE ...

#常用选项
-d|--decompress    #解压缩,相当于bunzip2
-z|--compress      #强制压缩
-k|--keep          #保留原文件
-f|--force         #覆盖己存在目标文件
-t|--test          #测试,检测压缩文件是否完整
-c|--stdout        #将压缩数据输出到标准输出中,并保留原文件
-q|--quiet         #安静模式,忽略警告
-v|--verbose       #显示过程
-N                 #指定压缩等级,取值为1-9之间,默认9
--fast             #同 -1
--best             #同 -9

3、 xz 和 unxz

来自于 xz 包

对应的文件是 .xz 后缀

格式:

xz [OPTION]... FILE ...
unxz [OPTION]... FILE ...

#常用选项
-z|--compress       #强制压缩
-d|--decompress     #解压缩,相当于unxz
-t|--test           #测试,检测压缩文件是否完整
-l|--list           #查看压缩文件相关信息
-k|--keep           #保留原文件
-f|--force          #覆盖己存在目标文件
-c|--stdout         #将压缩数据输出到标准输出中,并保留原文件
-T|--threads=NUM    #开多线程,默认1
-q|--quiet          #安静模式,忽略警告
-v|--verbose        #显示过程
-N          	    #指定压缩等级,取值为1-9之间,默认6

4、 zip 和 unzip

zip 可以实现打包目录和多个文件成一个文件并压缩,但可能会丢失文件属性信息,如:所有者和组信息

分别来自于 zip 和 unzip 包

对应的文件是 .zip 后缀

格式:

zip [OPTION]... zipfile [FILE]...
unzip [OPTION]... zipfile [FILE]...

#zip常用选项
-f   #更换较新的文件到压缩文件内
-u   #如果压缩包内有,则更新,如果没有,则追加进去
-d   #从压缩包内删除指定的文件
-m   #将文件压缩之后,删除原始文件
-r   #递归压缩目录      
-j   #只保存文件名称及其内容,而不存放任何目录名称              
-l   #压缩文件时,把LF字符置换成LF+CR字符,unzip -l 表示显示压缩文件的内容
-1   #最快压缩,数字1              
-9   #最高压缩比,数字9
-q   #安静模式             
-v   #显示过程
-c   #替每个被压缩的文件加上注释
-z   #给压缩包加注释,unzip -z 查看注释
-x   #压缩时排除指定文件
-i   #仅压缩指定文件
-D   #压缩文件内不建立目录名称
-T   #测试,检测压缩文件是否完整       
-X   #不保存额外的文件属性
-y   #直接保存符号连接,而非该链接所指向的文件
-n   #不压缩以特定字符串结尾的文件
-P   #加密码

#unzip常用选项
-p 	 #将压缩内容通过管道传送     
-l 	 #显示压缩文件内所包含的文件
-t 	 #测试,检测压缩文件是否完整  
-z 	 #查看注释
-v 	 #列出包内文件信息
-x 	 #指定不需要解压缩的文件
-d 	 #指定解压后的目标目录
-n 	 #解压缩时不要覆盖原有的文件        
-q 	 #安静模式
-o 	 #直接覆盖      
-a 	 #对文本文件进行必要的字符转换
-j 	 #不处理压缩文件中原有的目录路径   
-C 	 #压缩文件中的文件名称区分大小写     
-L 	 #将压缩文件中的全部文件名改为小写
-X 	 #解压缩时同时回存文件原来的UID/GID                   
-V 	 #保留VMS的文件版本信息
-K 	 #解压缩后还原权限   
-M 	 #将输出结果送到more程序处理

5、 zcat

zcat 来源于 "zip cat" 的缩写,见字知义

其功能是在不解压的情况下查看压缩文件内容

格式:

zcat [OPTION]... [FILE]...

#常用选项
-c   #将内容输出到标准输出,默认
-d   #解压缩
-l   #显示压缩文件(包)内的文件列表
-r   #在目上递归操作
-t   #测试压缩文件完整性

6、 压缩率比较

[root@ubuntu2204 0510]# compress hwdb.bin -vc > hwdb.bin.Z

[root@ubuntu2204 0510]# gzip -kv hwdb.bin

[root@ubuntu2204 0510]# bzip2 -kv hwdb.bin

[root@ubuntu2204 0510]# xz -kv hwdb.bin

[root@ubuntu2204 0510]# zip -v hwdb.zip hwdb.bin

[root@ubuntu2204 0510]# ll hwdb.* -h -S
-r--r--r-- 1 root root 11M Jul 26 20:48 hwdb.bin
-rw-r--r-- 1 root root 2.8M Jul 26 21:40 hwdb.bin.Z
-rw-r--r-- 1 root root 2.0M Jul 26 21:41 hwdb.zip
-r--r--r-- 1 root root 2.0M Jul 26 20:48 hwdb.bin.gz
-r--r--r-- 1 root root 1.7M Jul 26 20:48 hwdb.bin.bz2
-r--r--r-- 1 root root 1.4M Jul 26 20:48 hwdb.bin.xz