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/