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/