Linux下常用压缩工具总结

gzip:

1)只能针对普通文件进行压缩,对文件夹、符号链接无效。

2)如果想对多个文件一起压缩并打包,gzip是无法办到的,需要结合tar进行

[root@mysql-master databackup]# ll
总用量 32
drwx------ 2 root root 4096 10月 12 00:43 2016-10-12_00-43-29
drwx------ 2 root root 4096 10月 12 00:44 2016-10-12_00-44-00
drwx------ 2 root root 4096 10月 12 00:46 2016-10-12_00-46-53
drwx------ 2 root root 4096 10月 12 00:47 2016-10-12_00-47-43
drwx------ 2 root root 4096 10月 12 00:49 2016-10-12_00-49-02
-rw-r--r-- 1 root root 2522 10月 19 21:17 passwd
drwxr-xr-x 2 root root 4096 10月 12 00:37 xtrabackup
drwxr-xr-x 2 root root 4096 10月 12 00:37 xtrabackuplog
使用“-c”选项,可以保留原有文件
[root@mysql-master databackup]# gzip -c passwd >passwd.gz
[root@mysql-master databackup]# ll
总用量 36
drwx------ 2 root root 4096 10月 12 00:43 2016-10-12_00-43-29
drwx------ 2 root root 4096 10月 12 00:44 2016-10-12_00-44-00
drwx------ 2 root root 4096 10月 12 00:46 2016-10-12_00-46-53
drwx------ 2 root root 4096 10月 12 00:47 2016-10-12_00-47-43
drwx------ 2 root root 4096 10月 12 00:49 2016-10-12_00-49-02
-rw-r--r-- 1 root root 2522 10月 19 21:17 passwd
-rw-r--r-- 1 root root 1006 10月 19 21:18 passwd.gz
drwxr-xr-x 2 root root 4096 10月 12 00:37 xtrabackup
drwxr-xr-x 2 root root 4096 10月 12 00:37 xtrabackuplog
直接使用“gzip+文件”的压缩方式,原始文件不会被保留
[root@mysql-master databackup]# cp /etc/shadow .
[root@mysql-master databackup]# ll
总用量 40
drwx------ 2 root root 4096 10月 12 00:43 2016-10-12_00-43-29
drwx------ 2 root root 4096 10月 12 00:44 2016-10-12_00-44-00
drwx------ 2 root root 4096 10月 12 00:46 2016-10-12_00-46-53
drwx------ 2 root root 4096 10月 12 00:47 2016-10-12_00-47-43
drwx------ 2 root root 4096 10月 12 00:49 2016-10-12_00-49-02
-rw-r--r-- 1 root root 2522 10月 19 21:17 passwd
-rw-r--r-- 1 root root 1006 10月 19 21:18 passwd.gz
---------- 1 root root 1393 10月 19 21:19 shadow
drwxr-xr-x 2 root root 4096 10月 12 00:37 xtrabackup
drwxr-xr-x 2 root root 4096 10月 12 00:37 xtrabackuplog
[root@mysql-master databackup]# gzip shadow 
[root@mysql-master databackup]# ll
总用量 40
drwx------ 2 root root 4096 10月 12 00:43 2016-10-12_00-43-29
drwx------ 2 root root 4096 10月 12 00:44 2016-10-12_00-44-00
drwx------ 2 root root 4096 10月 12 00:46 2016-10-12_00-46-53
drwx------ 2 root root 4096 10月 12 00:47 2016-10-12_00-47-43
drwx------ 2 root root 4096 10月 12 00:49 2016-10-12_00-49-02
-rw-r--r-- 1 root root 2522 10月 19 21:17 passwd
-rw-r--r-- 1 root root 1006 10月 19 21:18 passwd.gz
---------- 1 root root  536 10月 19 21:19 shadow.gz
drwxr-xr-x 2 root root 4096 10月 12 00:37 xtrabackup
drwxr-xr-x 2 root root 4096 10月 12 00:37 xtrabackuplog
使用“gzip -d 压缩文件”,进行解压
[root@mysql-master databackup]# gzip -d shadow.gz
[root@mysql-master databackup]# ll
总用量 40
drwx------ 2 root root 4096 10月 12 00:43 2016-10-12_00-43-29
drwx------ 2 root root 4096 10月 12 00:44 2016-10-12_00-44-00
drwx------ 2 root root 4096 10月 12 00:46 2016-10-12_00-46-53
drwx------ 2 root root 4096 10月 12 00:47 2016-10-12_00-47-43
drwx------ 2 root root 4096 10月 12 00:49 2016-10-12_00-49-02
-rw-r--r-- 1 root root 2522 10月 19 21:17 passwd
-rw-r--r-- 1 root root 1006 10月 19 21:18 passwd.gz
---------- 1 root root 1393 10月 19 21:19 shadow
drwxr-xr-x 2 root root 4096 10月 12 00:37 xtrabackup
drwxr-xr-x 2 root root 4096 10月 12 00:37 xtrabackuplog
如上,我们发现原有的shadow文件已经出来了
gzip有九个压缩级别1-9(数字越大,压缩强度越高,速度对应的也会慢些),默认级别为6
# gzip -1 test.log

tar:

压缩/etc文件:
[root@mysql-master databackup]# tar -czvf etc.tar.gz /etc
[root@mysql-master databackup]# du -sh etc.tar.gz 
12Metc.tar.gz
解压缩,并进行查看
[root@mysql-master databackup]# tar -xf etc.tar.gz
tar常用的几个选项:
-c选项:表示要进行打包动作
-x选项:表示要进行拆包动作
-z选项:表示用gzip进行压缩或解压缩
-v选项:表示在拆包过程中直接整个过程,把已拆包的文件显示出来
-f选项:表示指定要拆包的文件
-t选项:列出打包的内容,适用于不想解压,但想查看压缩包内容的情况
[root@mysql-master databackup]# du -sh src.tar.gz 
607Msrc.tar.gz
[root@mysql-master databackup]# tar -ztvf src.tar.gz |less

bzip2:

bzip2用于压缩文件,bunzip2用于解压文件

但是我们查看链接文件,会发现,其实bunzip2其实就是bzip2的一个链接

[root@mysql-master ~]# ls -l /usr/bin/bunzip2 
lrwxrwxrwx. 1 root root 5 7月   5 23:42 /usr/bin/bunzip2 -> bzip2
[root@mysql-master ~]# bzip2 install.log
[root@mysql-master ~]# ls
anaconda-ks.cfg        index.html       install.log.syslog  M_pass.log  R_Server.log  模板  图片  下载  桌面
changehostpassword.sh  install.log.bz2  ip_list.txt         R_PWD.txt   公共的        视频  文档  音乐
[root@mysql-master ~]# file install.log.bz2 
install.log.bz2: bzip2 compressed data, block size = 900k
[root@mysql-master ~]# bunzip2 -d install.log.bz2 
[root@mysql-master ~]# ls
anaconda-ks.cfg        index.html   install.log.syslog  M_pass.log  R_Server.log  模板  图片  下载  桌面
changehostpassword.sh  install.log  ip_list.txt         R_PWD.txt   公共的        视频  文档  音乐

zip:

与gzip/bzip2类似,zip用于文件压缩,unzip命令用于解压缩,zip支持对文件和文件夹的压缩,-r表示递归

注意:zip在压缩文件的时候,会保留原文件。

[root@mysql-master ~]# cd /usr/local/src/
[root@mysql-master src]# ls
cmake-2.8.8         libiconv-1.14.tar.gz    mcrypt-2.6.8         mhash-0.9.9.9.tar.gz                 mysql-5.5.32.tar.gz  php-5.3.27
cmake-2.8.8.tar.gz  libmcrypt-2.5.8         mcrypt-2.6.8.tar.gz  mysql-5.5.32                         nginx-1.6.2          php-5.3.27.tar.gz
libiconv-1.14       libmcrypt-2.5.8.tar.gz  mhash-0.9.9.9        mysql-5.5.32-linux2.6-x86_64.tar.gz  nginx-1.6.2.tar.gz
[root@mysql-master src]# zip -r nginx.zip nginx-1.6.2.tar.gz nginx-1.6.2/
[root@mysql-master src]# ls
cmake-2.8.8         libiconv-1.14.tar.gz    mcrypt-2.6.8         mhash-0.9.9.9.tar.gz                 mysql-5.5.32.tar.gz  nginx.zip
cmake-2.8.8.tar.gz  libmcrypt-2.5.8         mcrypt-2.6.8.tar.gz  mysql-5.5.32                         nginx-1.6.2          php-5.3.27
libiconv-1.14       libmcrypt-2.5.8.tar.gz  mhash-0.9.9.9        mysql-5.5.32-linux2.6-x86_64.tar.gz  nginx-1.6.2.tar.gz   php-5.3.27.tar.gz
[root@mysql-master src]# du -sh nginx.zip 
7.7Mnginx.zip

unzip结合-d参数,解压到指定文件夹

[root@mysql-master src]# mkdir -p /mysqlbackup
[root@mysql-master src]# unzip -d /mysqlbackup nginx.zip 
[root@mysql-master src]# ls -l /mysqlbackup/
总用量 792
drwxr-xr-x 9 root root   4096 9月  16 2014 nginx-1.6.2
-rw-r--r-- 1 root root 804164 6月  22 01:17 nginx-1.6.2.tar.gz

使用“unzip -v 压缩文件”的组合,不解压的情况下,来查看压缩文件中的内容

[root@mysql-master src]# unzip -v nginx.zip 
Archive:  nginx.zip
 Length   Method    Size  Cmpr    Date    Time   CRC-32   Name
--------  ------  ------- ---- ---------- ----- --------  ----
  804164  Defl:N   804176   0% 06-22-2016 01:17 c721c245  nginx-1.6.2.tar.gz
       0  Stored        0   0% 09-16-2014 20:23 00000000  nginx-1.6.2/
    2369  Defl:N      732  69% 09-16-2014 20:23 85d03809  nginx-1.6.2/configure
       0  Stored        0   0% 09-22-2016 15:46 00000000  nginx-1.6.2/contrib/
       0  Stored        0   0% 09-16-2014 20:23 00000000  nginx-1.6.2/contrib/vim/
       0  Stored        0   0% 09-22-2016 15:46 00000000  nginx-1.6.2/contrib/vim/indent/
     250  Defl:N      165  34% 09-16-2014 20:23 87c1f91b  nginx-1.6.2/contrib/vim/indent/nginx.vim
       0  Stored        0   0% 09-22-2016 15:46 00000000  nginx-1.6.2/contrib/vim/ftdetect/
     198  Defl:N       79  60% 09-16-2014 20:23 68d244f2  nginx-1.6.2/contrib/vim/ftdetect/nginx.vim
       0  Stored        0   0% 09-16-2014 20:23 00000000  nginx-1.6.2/contrib/vim/syntax/
   31641  Defl:N     5987  81% 09-16-2014 20:23 fe4d7202  nginx-1.6.2/contrib/vim/syntax/nginx.vim
       0  Stored        0   0% 09-22-2016 15:46 00000000  nginx-1.6.2/contrib/unicode2nginx/

使用“unzip -t 压缩文件”,验证压缩文件的完整性

[root@mysql-master src]# unzip -t nginx.zip 
Archive:  nginx.zip
    testing: nginx-1.6.2.tar.gz       OK
    testing: nginx-1.6.2/             OK
    testing: nginx-1.6.2/configure    OK
    testing: nginx-1.6.2/contrib/     OK
    testing: nginx-1.6.2/contrib/vim/   OK
    testing: nginx-1.6.2/contrib/vim/indent/   OK
    testing: nginx-1.6.2/contrib/vim/indent/nginx.vim   OK
    testing: nginx-1.6.2/contrib/vim/ftdetect/   OK
    testing: nginx-1.6.2/contrib/vim/ftdetect/nginx.vim   OK
    testing: nginx-1.6.2/contrib/vim/syntax/   OK
    testing: nginx-1.6.2/contrib/vim/syntax/nginx.vim   OK
    testing: nginx-1.6.2/contrib/unicode2nginx/   OK
    testing: nginx-1.6.2/contrib/unicode2nginx/koi-utf   OK
    -------------------------------------------------------
    -------------------------------------------------------
    testing: nginx-1.6.2/Makefile     OK
    testing: nginx-1.6.2/conf/        OK
    testing: nginx-1.6.2/conf/uwsgi_params   OK
    testing: nginx-1.6.2/conf/koi-utf   OK
    testing: nginx-1.6.2/conf/win-utf   OK
    testing: nginx-1.6.2/conf/mime.types   OK
    testing: nginx-1.6.2/conf/fastcgi.conf   OK
    testing: nginx-1.6.2/conf/koi-win   OK
    testing: nginx-1.6.2/conf/fastcgi_params   OK
    testing: nginx-1.6.2/conf/scgi_params   OK
    testing: nginx-1.6.2/conf/nginx.conf   OK
No errors detected in compressed data of nginx.zip.

zip的扩展:

当我们配置好压缩文件的时候,发现其中某个比较占空间的文件并不是我们想要的,并且,我们不想重新解压和压缩。

向压缩文件中删除文件:
[root@mysql-master src]# zip nginx.zip -d nginx-1.6.2.tar.gz 
deleting: nginx-1.6.2.tar.gz
[root@mysql-master src]# unzip -v nginx.zip |grep nginx-1.6.2.tar.gz 
发现没有该文件存在了
向压缩文件中添加文件:
[root@mysql-master src]# zip -m nginx.zip nginx-1.6.2.tar.gz 
  adding: nginx-1.6.2.tar.gz (deflated 0%)
[root@mysql-master src]# unzip -v nginx.zip |grep nginx-1.6.2.tar.gz
  804164  Defl:N   804176   0% 06-22-2016 01:17 c721c245  nginx-1.6.2.tar.gz

原创文章,作者:Net21-冰冻vs西瓜,如若转载,请注明出处:http://www.178linux.com/53054

(0)
Net21-冰冻vs西瓜Net21-冰冻vs西瓜
上一篇 2016-12-05
下一篇 2016-12-05

相关推荐

  • bash shell 循环语句的使用

    条件选择if语句       if语句是选择执行的,条件满足则执行,不满足则退出,if语句也可嵌套,就是if语句里面也可以在进行if语句 单分支 if 判断条件;then statement1 fi   双分支 if 判断条件;then 条件为真得分支 else 条件为假的分支 fi   …

    Linux干货 2016-08-18
  • 文件权限管理

    文件权限               [root@CentOS6 ~]# ll 3.txt            &nb…

    Linux干货 2016-08-04
  • 马哥教育网络班21期+第一周课程练习

    一、计算机的组成及其功能 自上个世纪40年代开始截止到目前,我们所有的计算机包括手持的智能终端设备,它们整个组织体系设备都是遵循冯诺依曼体系结构。 现代计算机设备的组成部分: 运算器、控制器、存储器、输入设备、输出设备 控制器:控制器是整个计算机的枢纽,一般是控制计算机整个部件之间协调的,比如运算器要想运算的话,首先得从存储器中取出数值。或者输入设备输入数。…

    Linux干货 2016-07-07
  • yum命令的用法

    1.列出所有可更新的软件清单命令:yum check-update 2.安装所有更新软件命令:yum update 3.仅安装指定的软件命令:yum install <package_name> 4.仅更新指定的软件命令:yum update <package_name> 5.列出所有可安裝的软件清单命令:yum list 用YUM安…

    Linux干货 2017-08-11
  • 日志分析工具Awstats实战之Apache篇-多站点日志分析

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1318052 前面两篇都在讲述如何去部署nginx下的awstats日志分析工具,现在终于轮到apache。作为老牌的网页服务器,awstats对apache…

    Linux干货 2016-08-15
  • linux网络命令与软件管理

    1、描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景和区别 网桥也叫桥接器,是连接两个局域网的一种存储/转发设备,用来连接不同网段。 集线器称为“Hub”,主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。 二层交换机工作于OSI模型的第2层(数据链路层),可识别数据包中的MAC地址信息,…

    Linux干货 2016-12-18