码迷,mamicode.com
首页 > 其他好文 > 详细

2018-1-5 4周4次课 压缩工具 gzip、bzip2、xz

时间:2018-01-05 20:53:31      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:文件名   bash   /etc/   后缀   class   6.4   通过   txt   文件大小   

6.1 压缩打包介绍

常用压缩文件

·Windows .rar .zip .7z

·Linux .zip .gz .bz2 .xz .tar .gz .tar .bz2 tar .xz

Linux下后缀名并没有Windows不重要,但是需要通过后缀名来判断压缩包是类型的文件





6.2 gzip压缩工具

Linux下常用的压缩工具:gzip,bzip2,xz,zip,tar


·gizp压缩工具

首先准备一个文件

[root@localhost ~]# cd /tmp/
[root@localhost tmp]# mkdir d6z
[root@localhost tmp]# cd d6z/
[root@localhost d6z]# find /etc/ -type f -name '*.conf' -exec cat {} >> 1.txt \;
[root@localhost d6z]# find /etc/ -type f -name '*.conf' -exec cat {} >> 1.txt \;
[root@localhost d6z]# find /etc/ -type f -name '*.conf' -exec cat {} >> 1.txt \;
[root@localhost d6z]# find /etc/ -type f -name '*.conf' -exec cat {} >> 1.txt \;
[root@localhost d6z]# find /etc/ -type f -name '*.conf' -exec cat {} >> 1.txt \;
[root@localhost d6z]# find /etc/ -type f -name '*.conf' -exec cat {} >> 1.txt \;
[root@localhost d6z]# find /etc/ -type f -name '*.conf' -exec cat {} >> 1.txt \;
[root@localhost d6z]# ll -h
总用量 2.2M
-rw-r--r--. 1 root root 1.7M 1月   3 22:20 1.txt          ##文件实际大小和总用量有差距,里面存在虚量


·压缩命令:gzip 文件名

[root@localhost d6z]# gzip 1.txt
[root@localhost d6z]# ll -h
总用量 436K
-rw-r--r--. 1 root root 433K 1月   3 22:20 1.txt.gz



·解压缩命令:gzip -d 压缩包文件名 /  unzip 1.txt.gz

[root@localhost d6z]# gzip -d 1.txt.gz
[root@localhost d6z]# ll -h
总用量 1.7M
-rw-r--r--. 1 root root 1.7M 1月   3 22:20 1.txt          ##压缩解压缩一次会将虚量挤掉



·另一个解压缩命令:gunzip 压缩包文件名

[root@localhost d6z]# gunzip 1.txt.gz
[root@localhost d6z]# ll -h
总用量 1.7M
-rw-r--r--. 1 root root 1.7M 1月   3 22:20 1.txt



·设定压缩级别(不能压缩目录):gzip -压缩级别(1-9) 文件名

[root@localhost d6z]# gzip -1 1.txt                    ##指定压缩级别,默认6级别,1为最快,9为最好
[root@localhost d6z]# ll -h
总用量 512K
-rw-r--r--. 1 root root 512K 1月   3 22:20 1.txt.gz
[root@localhost d6z]# gzip -9 1.txt                    ##压缩到一定程度后,文件大小不会再有所变化
[root@localhost d6z]# ll -h
总用量 432K
-rw-r--r--. 1 root root 431K 1月   3 22:20 1.txt.gz


·查看压缩文件内容:zcat 压缩包文件名

[root@localhost d6z]# zcat 1.txt.gz

内容过多,不详细展示


·压缩时指定压缩文件保存目录并且不删除源文件:gzip -c 文件名 > 压缩包绝对路径

[root@localhost d6z]# gzip -c 1.txt > /tmp/1.txt.gz
[root@localhost d6z]# ll
总用量 1664
-rw-r--r--. 1 root root 1700160 1月   3 22:20 1.txt
[root@localhost d6z]# ls
1.txt
[root@localhost d6z]# ls /tmp/1.txt.gz
/tmp/1.txt.gz
[root@localhost d6z]# file !$
file /tmp/1.txt.gz
/tmp/1.txt.gz: gzip compressed data, was "1.txt", from Unix, last modified: Wed Jan  3 22:20:29 2018



·解压缩文件时不删除原压缩文件:gunzip -c 压缩文件绝对路径 > 目标文件路径 /    gzip -d -c

[root@localhost d6z]# gunzip -c /tmp/1.txt.gz > /tmp/d6z/2.txt
[root@localhost d6z]# ls /tmp/
1.txt.gz          systemd-private-563dd467f5694de9a79e64f675ddbbd6-chronyd.service-pvAtKB
d6z              systemd-private-563dd467f5694de9a79e64f675ddbbd6-vgauthd.service-CxHB7l
ks-script-ThyP1C      systemd-private-563dd467f5694de9a79e64f675ddbbd6-vmtoolsd.service-0pWLAR
passwd            yum.log
[root@localhost d6z]# du -sh 1.txt 2.txt
1.7M1.txt
1.7M2.txt





6.3 bzip2压缩工具


bzip2和gzip比压缩更狠,使用方法差不错


·压缩命令:bzip2 文件名     (不支持压缩目录)

[root@localhost d6z]# bzip2 1.txt
[root@localhost d6z]# ls
1.txt.bz2  2.txt
[root@localhost d6z]# du -sh 1.txt.bz2
164K1.txt.bz2


·解压缩命令:bzip2 -d 压缩文件名  /  bunzip2 压缩文件名

[root@localhost d6z]# bzip2 -d 1.txt.bz2
[root@localhost d6z]# ll -h
总用量 3.3M
-rw-r--r--. 1 root root 1.7M 1月   3 22:20 1.txt
-rw-r--r--. 1 root root 1.7M 1月   3 22:56 2.txt
[root@localhost d6z]# bzip2 1.txt
[root@localhost d6z]# bunzip2 1.txt.bz2
[root@localhost d6z]# ll -h
总用量 3.3M
-rw-r--r--. 1 root root 1.7M 1月   3 22:20 1.txt
-rw-r--r--. 1 root root 1.7M 1月   3 22:56 2.txt


·压缩到一个指定目录下:bzip2 -c 文件名 > 压缩文件绝对路径

[root@localhost d6z]# bzip2 -c 1.txt > /tmp/1.txt.bz2
[root@localhost d6z]# ll -h
总用量 3.3M
-rw-r--r--. 1 root root 1.7M 1月   3 22:20 1.txt
-rw-r--r--. 1 root root 1.7M 1月   3 22:56 2.txt
[root@localhost d6z]# ll -h /tmp/
总用量 616K
-rw-r--r--. 1 root root  163K 1月   4 21:32 1.txt.bz2
-rw-r--r--. 1 root root  433K 1月   3 22:51 1.txt.gz
drwxr-xr-x. 2 root root   32 1月   4 21:26 d6z
-rwx------. 1 root root  836 12月   28 05:59 ks-script-ThyP1C
-rw-r--r--. 1 root root  10K 12月   31 23:18 passwd
drwx------. 3 root root   17 1月   4 18:26 systemd-private-29544dd479044cf3a1aba0ff5f5af001-chronyd.service-gea3cL
drwx------. 3 root root   17 1月   4 18:26 systemd-private-29544dd479044cf3a1aba0ff5f5af001-vgauthd.service-37GJ3e
drwx------. 3 root root   17 1月   4 18:26 systemd-private-29544dd479044cf3a1aba0ff5f5af001-vmtoolsd.service-BZPrDh
-rw-------. 1 root root   0 12月   28 05:36 yum.log


·解压缩到指定目录下:bzip2 -d -c

[root@localhost d6z]# bzip2 -d -c /tmp/1.txt.bz2 > 3.txt
[root@localhost d6z]# ll -h
总用量 4.9M
-rw-r--r--. 1 root root 1.7M 1月   3 22:20 1.txt
-rw-r--r--. 1 root root 1.7M 1月   3 22:56 2.txt
-rw-r--r--. 1 root root 1.7M 1月   4 21:35 3.txt
[root@localhost d6z]# ll -h /tmp/
总用量 616K
-rw-r--r--. 1 root root  163K 1月   4 21:32 1.txt.bz2
-rw-r--r--. 1 root root  433K 1月   3 22:51 1.txt.gz
drwxr-xr-x. 2 root root   45 1月   4 21:35 d6z
-rwx------. 1 root root  836 12月   28 05:59 ks-script-ThyP1C
-rw-r--r--. 1 root root  10K 12月   31 23:18 passwd
drwx------. 3 root root   17 1月   4 18:26 systemd-private-29544dd479044cf3a1aba0ff5f5af001-chronyd.service-gea3cL
drwx------. 3 root root   17 1月   4 18:26 systemd-private-29544dd479044cf3a1aba0ff5f5af001-vgauthd.service-37GJ3e
drwx------. 3 root root   17 1月   4 18:26 systemd-private-29544dd479044cf3a1aba0ff5f5af001-vmtoolsd.service-BZPrDh
-rw-------. 1 root root   0 12月   28 05:36 yum.log


·设定压缩级别:bzip2 -压缩级别(1-9) 文件名

[root@localhost d6z]# bzip2 -9 1.txt
[root@localhost d6z]# du -sh 1.txt.bz2
164K1.txt.bz2

(bzip2默认压缩级别就是9)


·查看压缩文件内容:bzcat 压缩文件名

[root@localhost d6z]# bzcat 1.txt.bz2

内容过多,不详细展示


疑问:gzip压缩过的文件用bzip2工具能解压缩吗?或者bzip2压缩过的文件用gzip解压?

[root@localhost d6z]# gzip -d 1.txt.bz2

gzip: 1.txt.bz2: unknown suffix -- ignored

[root@localhost d6z]# bunzip2 /tmp/1.txt.gz

bunzip2: Can't guess original name for /tmp/1.txt.gz -- using /tmp/1.txt.gz.out

bunzip2: /tmp/1.txt.gz is not a bzip2 file.

答案当然是不可以~!





6.4 xz压缩工具


·压缩命令:xz 文件名 / xz -z 文件名    (不能压缩目录)

[root@localhost d6z]# xz 1.txt
[root@localhost d6z]# ll -h
总用量 3.4M
-rw-r--r--. 1 root root  56K 1月   3 22:20 1.txt.xz        ##压缩级别很高
-rw-r--r--. 1 root root 1.7M 1月   3 22:56 2.txt
-rw-r--r--. 1 root root 1.7M 1月   4 21:35 3.txt


·解压缩命令:xz -d 压缩文件名 / unxz 压缩文件名

[root@localhost d6z]# unxz 1.txt.xz
[root@localhost d6z]# ll -h
总用量 4.9M
-rw-r--r--. 1 root root 1.7M 1月   3 22:20 1.txt
-rw-r--r--. 1 root root 1.7M 1月   3 22:56 2.txt
-rw-r--r--. 1 root root 1.7M 1月   4 21:35 3.txt



·设定压缩级别:xz -级别 文件名    (1-9,默认6)

[root@localhost d6z]# xz -9 1.txt
[root@localhost d6z]# ll -h
总用量 3.4M
-rw-r--r--. 1 root root  56K 1月   3 22:20 1.txt.xz
-rw-r--r--. 1 root root 1.7M 1月   3 22:56 2.txt
-rw-r--r--. 1 root root 1.7M 1月   4 21:35 3.txt


·查看压缩文件内容:xzcat 压缩文件名

[root@localhost d6z]# xzcat 1.txt.xz

内容过多,不详细展示


·压缩到指定目录:xz -c 文件名 > 压缩文件绝对路径

[root@localhost d6z]# xz -c 1.txt > /tmp/1.txt.xz
[root@localhost d6z]# ll
总用量 4992
-rw-r--r--. 1 root root 1700160 1月   3 22:20 1.txt         ##被压缩的文件不会被删除
-rw-r--r--. 1 root root 1700160 1月   3 22:56 2.txt
-rw-r--r--. 1 root root 1700160 1月   4 21:35 3.txt
[root@localhost d6z]# ll /tmp/
总用量 672
-rw-r--r--. 1 root root   166901 1月   4 21:32 1.txt.bz2
-rw-r--r--. 1 root root   442631 1月   3 22:51 1.txt.gz
-rw-r--r--. 1 root root   57088 1月   4 22:00 1.txt.xz
drwxr-xr-x. 2 root root     45 1月   4 21:59 d6z
-rwx------. 1 root root    836 12月   28 05:59 ks-script-ThyP1C
-rw-r--r--. 1 root root  10152 12月   31 23:18 passwd
drwx------. 3 root root     17 1月   4 18:26 systemd-private-29544dd479044cf3a1aba0ff5f5af001-chronyd.service-gea3cL
drwx------. 3 root root     17 1月   4 18:26 systemd-private-29544dd479044cf3a1aba0ff5f5af001-vgauthd.service-37GJ3e
drwx------. 3 root root     17 1月   4 18:26 systemd-private-29544dd479044cf3a1aba0ff5f5af001-vmtoolsd.service-BZPrDh
-rw-------. 1 root root     0 12月   28 05:36 yum.log



·解压缩到指定目录:xz -d -c 压缩文件绝对路径 > 文件名

[root@localhost d6z]# xz -d -c /tmp/1.txt.xz > 4.txt
[root@localhost d6z]# ll /tmp/
总用量 672
-rw-r--r--. 1 root root  166901 1月    4 21:32 1.txt.bz2
-rw-r--r--. 1 root root  442631 1月    3 22:51 1.txt.gz
-rw-r--r--. 1 root root  57088 1月    4 22:00 1.txt.xz       ##被解压缩的文件不会被删除
drwxr-xr-x. 2 root root    58 1月    4 22:01 d6z
-rwx------. 1 root root   836 12月    28 05:59 ks-script-ThyP1C
-rw-r--r--. 1 root root  10152 12月   31 23:18 passwd
drwx------. 3 root root     17 1月   4 18:26 systemd-private-29544dd479044cf3a1aba0ff5f5af001-chronyd.service-gea3cL
drwx------. 3 root root     17 1月   4 18:26 systemd-private-29544dd479044cf3a1aba0ff5f5af001-vgauthd.service-37GJ3e
drwx------. 3 root root     17 1月   4 18:26 systemd-private-29544dd479044cf3a1aba0ff5f5af001-vmtoolsd.service-BZPrDh
-rw-------. 1 root root     0 12月   28 05:36 yum.log
[root@localhost d6z]# ll
总用量 6656
-rw-r--r--. 1 root root 1700160 1月   3 22:20 1.txt
-rw-r--r--. 1 root root 1700160 1月   3 22:56 2.txt
-rw-r--r--. 1 root root 1700160 1月   4 21:35 3.txt
-rw-r--r--. 1 root root 1700160 1月   4 22:01 4.txt           ##被解压出的文件



2018-1-5 4周4次课 压缩工具 gzip、bzip2、xz

标签:文件名   bash   /etc/   后缀   class   6.4   通过   txt   文件大小   

原文地址:http://blog.51cto.com/11530642/2057941

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!