GZIP 压缩
# gzip 压缩单个文件, 后缀.gz
$ gzip [选项] [被压缩文件] # 删除原文件会自动生成一个带有 .gz 的文件
-1 # 压缩时间最少--fast
-9 # 压缩比率最高--best
-l # 输出压缩文件内容
-k # 不删除输入文件
-v # 显示压缩详细信息
-f # 覆盖现有的压缩后的文件
-r # 将目标目录下所有文件全部压缩
-t # 测试压缩包的完整性
-d # 解压缩
# gzip 解压缩单个文件
$ gunzip [选项] [被解压文件]
-lkvfrt # 同上
# 只能压缩/解压单个文件,并且压缩/解压后自动删除原文件
# 重复压缩虽然有效,但是文件大小基本不能再变小, 另外此压缩命令对文件后缀名敏感
ZIP 通用压缩
#.zip是多平台通用的一种压缩文件类型
$ zip [选项] [目标包名] [源文件(夹)]
-0 # 仅存储
-1 # 最快
-9 # 最好
-r # 压缩目录
-c # 添加一行注释
-z # 添加压缩文档注释
-e # 设置密码
-f # 刷新仅更改的文件
-u # 更新压缩包内文件
-d # 删除压缩包内指定文件
-m # 将目标文件移动进入压缩包
-x # 排除指定文件
-i # 包含指定文件
-F # 修复zip文件
-T # 测试压缩文件
# 重复压缩不改善体积,压缩过程不写目标文件后缀会自动追加.zip,但解压操作对后缀不敏感
$ unzip [选项] [压缩包]
-l # 查看压缩包
-t # 测试包
-p # 解压到管道
-z # 打印压缩包注释
-n # 永不覆盖已存在的文件
-o # 不询问直接覆盖
-X # 恢复 UID/GID 信息
-K # 保留 SetUID/SetGID/StickyBIT 权限
BZIP2 压缩
#bzip2压缩,后缀.bz2
$ bzip2 [选项] [文件]
-1 # 最快
-9 # 最好
-k # 保留原文件
-z # 强制压缩
-d # 解压
-f # 覆盖现有文件
-t # 测试压缩包
-v # 列出详细信息
$ bunzip2 [选项] [文件]
#只能压缩/解压单个文件
XZ 压缩 (有损压缩)
$ xz [选项] [被压缩文件]
-0...-9 # 压缩等级, 默认为 6
-z # 强制压缩
-d # 强制解压
-t # 检查压缩包完整性
-l # 输出压缩包信息
-k # 保留输入文件
-e # 占用更多CPU进行极致压缩
-T # 指定线程数, 0 表示根据CPU核心尽可能的多用线程
-v # 列出详细信息
$ unxz [选项] [文件]
#只能压缩/解压单个文件
Linux 多文件打包/压缩
$ tar [选项] [目标包名] [源文件(夹)]
-c # 创建包
-x # 展开包
-f # 指定文件(必选)
-v # 列出详细信息
-t # 列出包内文件
-z # 调用 gzip/zip
-j # 调用 bzip2
-J # 调用 xz
-a # 根据文件扩展自动调用压缩算法
#重复压缩有效,但是不能改善体积;对后缀不敏感
$ tar -zcvf hello.tar.gz hello
$ tar -jcvf hello.tar.bz2 hello
$ tar -zxvf hello.tar.gz
$ tar -jxvf hello.tar.bz2
几种压缩工具的比较
|压缩工具|扩展名|压缩率|压缩速度|解压缩速度|特性|适用场景|
|—|—|—|—|—|—|—|
|gzip|.gz|中等|快|快|通用压缩工具,支持多种文件格式|日常文件压缩,传输|
|zip|.zip|中等|中等|中等|支持多文件压缩,可包含目录结构,支持加密|文件打包,跨平台传输|
|bzip2|.bz2|高|慢|慢|压缩率高,但压缩和解压缩速度较慢|高压缩率需求,如存储空间有限|
|xz|.xz|最高|慢|快|压缩率最高,但压缩速度较慢,解压缩速度快于bzip2|追求最高压缩率,如备份,离线存储|