linux 常见压缩、归档工具
创建压缩工具
| 压缩工具 | 后缀 | 描述 |
| compress/uncompress | .Z | 早期工具,现在不常见了 |
| gzip/gunzip | .gz | 进几年比较火的工具 |
| bzip2/bunzip2 | .bz2 | gzip升级版,压缩效果并不理想 |
| xz/unxz | .xz | 目前压缩最好用的工具 |
| zip | .zip | 可实现归档压缩,多平台支持 |
| tar | .tar | 归档工具 |
gzip
格式:
gzip [OPTION......] [FILE......]
-d: 解压缩,相当于gunzip;
-*: 指定压缩比,默认是6,数字越大压缩比越大(1-9);
-c:将压缩结果标准输出为某个文件*.gz;
练习:
# 源文件 -rw-r--r-- 1 root root 819K 1月 2 17:28 test.log # 不指定选项压缩默认删除原文件 ]# gzip test.log -rw-r--r-- 1 root root 138K 1月 2 17:28 test.log.gz # 指定压缩比并指定标准输出文件 ]# gzip -9 -c test.log > test.log.gz -rw-r--r-- 1 root root 137K 1月 2 17:56 test.log.gz # 解压缩 ]# gzip -d test.log.gz ]# gunzip test.log.gz #不解压查看文件 ]# zcat test.log.gz
bzip2
格式:
bzip2 [OPTION......] [FILE......]
-d:解压缩
-*:指定压缩比,默认是6,数字越大压缩比越大(1-9);
-k:保留原文件
练习:
# 不加任何选项默认删除原文件 ]# bzip2 test.log -rw-r--r-- 1 root root 32K 1月 2 17:28 test.log.bz2 # 指定压缩比并保留源文件 ]# bzip2 -9 -k test.log -rw-r--r-- 1 root root 32K 1月 2 17:28 test.log.bz2 # 解压 ]# bunzip2 test.log.bz2 ]# bzip2 -d test.log.bz2 # 查看归档文件 ]# bzcat test.log.bz2
xz
格式:
xz [OPTION......] [FILE......]
-d:解压缩
-*:指定压缩比,默认是6,数字越大压缩比越大(1-9);
-k:保留原文件
练习:
# 不加任何选项默认删除原文件 ]# xz test.log -rw-r--r-- 1 root root 18K 1月 2 17:28 test.log.xz # 指定压缩比并保留源文件 ]# xz -9 -k test.log -rw-r--r-- 1 root root 18K 1月 2 17:28 test.log.xz # 解压 ]# unxz test.log.xz ]# xz -d test.log.xz # 查看归档文件 ]# xzcat test.log.xz
tar
格式:
tar [OPTION......] [FILE......]
-c: 建立压缩档案
-x: 解压
-t: 查看内容
-r: 向压缩归档文件末尾追加文件
-f :使用档名
-u:更新原压缩包中的文件
-z:有gzip属性的
-j: 有bz2属性的
-J: 有xz属性
-Z:有compress属性的
-v:显示所有过程
-C:将文件解开到标准输出
练习:
# 归档多个文件 ]# tar -cf ./ll.tar test.log yum.log # 展开归档到指定的目录 ]# tar xf ll.tar -C /var/ # 查看归档中的文件 ]# tar tf ll.tar # 归档并用gzip压缩 ]# tar -zcf linux.tar.gz test.log yum.log ]# tar xf linux.tar.gz test.log yum.log # 归档并用xz压缩 ]# tar -Jcf li.tar.xz test.log yum.log ]# tar xvf li.tar.xz # 归档并用bzip2压缩 ]# tar -jcf lii.tar.bz2 test.log yum.log ]# tar xvf lii.tar.bz2
zip
参数:
-v 显示指令执行过程或显示版本信息。
-r 递归处理,将指定目录下的所有文件和子目录一并处理。
-q 不显示指令执行过程。
-m 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。
-<压缩效率> 压缩效率是一个介于1-9的数值。
-d 指定解压文件夹
实例:
]# zip -r test.zip test ]# unzip test.zip -d l1/