6月22日任务
6.1 压缩打包介绍
6.2 gzip压缩工具
6.3 bzip2压缩工具
6.4 xz压缩工具
6.1 压缩打包介绍:
linux中常见的一些压缩文件
.zip .gz .bz2 .xz .tar .gz .tar .bz2 .tar.xz
建立一些文件的时候,要把文件的后缀名设置成该格式的后缀名
-----------------------------------------------------------------------------------------------------------------------------------------
6.2 gzip压缩工具:
gzip压缩有9个级别,gzip -1 可设置级别,一般默认就好(6级别)
压缩的级别越高越占CPU
不可压缩目录
gzip file 可直接压缩
gzip -d file 可解压缩
gunzip file 也可解压缩
gzip -c 1.txt > /tmp/1.txt.gz 可指定压缩到这个目录下,而且原文件不消失
gzip -d -c /tmp/1.txt.gz > /tmp/d6z/2.txt 可指定解压到这个目录下,而且源文件不消失,可改名字
对于压缩文件,可以用
file 来查看信息 例如file 1.txt.gz
zcat 可列出内容
实例:
我们先输出一个大的文件
find /etc -type f -name "*conf" -exec cat {} >> 1.txt \; 反复几次直至他变大
开始压缩
[root@aminglinux-01 d6z]# du -sh 1.txt
1.9M 1.txt 可看他当前为1.9M
[root@aminglinux-01 d6z]# wc -l 1.txt
48624 1.txt 48624行
[root@aminglinux-01 d6z]# gzip 1.txt 开始压缩
[root@aminglinux-01 d6z]# du -sh 1.txt 再次查看
du: 无法访问"1.txt": 没有那个文件或目录 发现没有那个文件,其实已经压缩后自动改名为后缀
[root@aminglinux-01 d6z]# ls
1.txt.gz 后缀自动加上.gz
[root@aminglinux-01 d6z]# du -sh 1.txt.gz
496K 1.txt.gz 可以看到以压缩成功
那再来解压
[root@aminglinux-01 d6z]# gzip -d 1.txt.gz 开始解压
[root@aminglinux-01 d6z]# ls 查看
1.txt 已自动更改回后缀名
[root@aminglinux-01 d6z]# du -sh 1.txt 看一下大小
1.9M 1.txt 和原先一样
[root@aminglinux-01 d6z]# wc -l 1.txt 再看一下行数
48624 1.txt 和原先一样
来指定压缩和解压
[root@aminglinux-01 d6z]# gzip -c 1.txt > /tmp/1.txt.gz 指定压缩位置
[root@aminglinux-01 d6z]# ls 看下源文件确有
1.txt
[root@aminglinux-01 d6z]# ls /tmp/1.txt.gz 看下压缩文件确有
/tmp/1.txt.gz 并且在指定目录下
[root@aminglinux-01 d6z]# gzip -d -c /tmp/1.txt.gz > /tmp/d6z/2.txt 指定解压文件到改目录下
[root@aminglinux-01 d6z]# ls 看一下,两个文件都在
1.txt 2.txt
[root@aminglinux-01 d6z]# wc -l *.txt 行数跟之前是一样的
48624 1.txt
48624 2.txt
97248 总用量
[root@aminglinux-01 d6z]# du -sh *.txt 大小也是一样的
1.9M 1.txt
1.9M 2.txt
---------------------------------------------------------------------------------------------------------------------------------------
6.3 bzip2压缩工具 :
bzip2 比gzip压缩的更狠一下
不支持压缩目录
bzip2默认压缩级别就是9,所以我们也不需要指定
bzip2 1.txt 可直接压缩
bzip2 -d 1.txt 可直接解压解压
bunzip2 1.txt 也可解压
bzip2 -c 1.txt > /tmp/1.txt.bz2 压缩到指定目录下,并保留原来的文件
bzip2 -d -c /tmp/1.txt.bz2 > 3.txt 指定解压目录,并保留原来的文件
bzcat 1.txt 可列出压缩文件的内容
实例:
压缩文件:
[root@aminglinux-01 tmp]# du -sh 1.txt 查看大小
1.9M 1.txt
[root@aminglinux-01 tmp]# wc -l 1.txt 查看行数
48624 1.txt
[root@aminglinux-01 tmp]# bzip2 1.txt 开始压缩
[root@aminglinux-01 tmp]# du -sh 1.txt.bz2 压缩后一样会自动修改后缀名
188K 1.txt.bz2 压缩的更狠
[root@aminglinux-01 tmp]# bzip2 -d 1.txt.bz2 开始解压
[root@aminglinux-01 tmp]# du -sh 1.txt 查看大小
1.9M 1.txt
[root@aminglinux-01 tmp]# wc -l 1.txt 查看行数
48624 1.txt
压缩和解压指定目录:
[root@aminglinux-01 tmp]# bzip2 -c /tmp/1.txt > /tmp/d6z/2.txt.bz2 指定压缩目录,并修改名字
[root@aminglinux-01 tmp]# du -sh !$ 查看大小
du -sh /tmp/d6z/2.txt.bz2
156K /tmp/d6z/2.txt.bz2
[root@aminglinux-01 tmp]# du -sh 1.txt 查看原始文件大小
1.4M 1.txt
[root@aminglinux-01 tmp]# wc -l 1.txt 查看原始文件行数
36468 1.txt
[root@aminglinux-01 tmp]# file !$ 查看要锁文件是否压缩成功
file /tmp/d6z/2.txt.bz2
/tmp/d6z/2.txt: bzip2 compressed data, block size = 900k 成功
[root@aminglinux-01 tmp]# bzip2 -d -c /tmp/d6z/2.txt.bz2 > /tmp/2.txt 指定解压目录
[root@aminglinux-01 tmp]# du -sh 2.txt 查看大小
1.4M 2.txt
[root@aminglinux-01 tmp]# wc -l 2.txt 查看行数
36468 2.txt
---------------------------------------------------------------------------------------------------------------------------------------
6.4 xz压缩工具:
xz比bzip2压缩的还要狠一下
同样支持1-9的压缩级别
不支持压缩目录
xz 1.txt 压缩文件
xz -d 解压文件
unxz 也可解压
xz -c 1.txt > /tmp/1.txt.xz 指定压缩目录,并保留原来的文件
xz -d -c /tmp/1.txt.xz > /tmp/d6z/1.txt 指定解压目录,并保留原来的文件
xzcat 可列出这个压缩文件
实例:
压缩
[root@aminglinux-01 d6z]# xz 2.txt.out
[root@aminglinux-01 d6z]# ls
2.txt.out.xz
[root@aminglinux-01 d6z]# du -sh 2.txt.out.xz
56K 2.txt.out.xz
[root@aminglinux-01 d6z]# xz -d 2.txt.out.xz
[root@aminglinux-01 d6z]# du -sh 2.txt.out
1.4M 2.txt.out
指定压缩和解压目录:
[root@aminglinux-01 d6z]# xz -c /tmp/2.txt > /tmp/d6z/2.txt.xz
[root@aminglinux-01 d6z]# ls !$
ls /tmp/d6z/2.txt.xz
/tmp/d6z/2.txt.xz
[root@aminglinux-01 d6z]# du -sh !$
du -sh /tmp/d6z/2.txt.xz
56K /tmp/d6z/2.txt.xz
[root@aminglinux-01 d6z]# xz -d -c /tmp/d6z/2.txt.xz > /tmp/3.txt
[root@aminglinux-01 d6z]# du -sh !$
du -sh /tmp/3.txt
1.4M /tmp/3.txt