系统基础之压缩归档工具详解

压缩和解压缩工具



概论


 在使用操作系统时,我们常会遇到大文件,会使我们很头疼.在面对时间和空间上的选择,只能选择空间,这就要用到压缩工具和归档工具,下面为大家一一介绍.

 压缩文件只压缩文本格式的文件,通常不压缩已经是压缩的文件.

 压缩文件就会涉及到压缩比:

   原理:通过了解文本文件的数据形式,运用压缩算法,

   目的:时间换空间

 工具:

   压缩:

      compress/uncompress 结尾:.z

      gzip/gunzip      结尾: .gz

      bzip2/bunzip2     结尾: .bz2

      xz/unxz         结尾: .xz

   归档:

      zip/unzip

      tar,cplo


压缩工具详解


1.gzip/gunzip工具/zcat

  特点:压缩后,删除原文件

  格式:

    gzip [ -acdfhlLnNrtvV19 ] [-S 后缀] [ 文件名 …  ]

    gunzip [ -acfhlLnNrtvV ] [-S 后缀] [ 文件名 …  ]

    zcat [ -fhLV ] [ 文件名 …  ]     查看gzip文件

  选项:

    -d:–decompress  解压缩,相当于gunzip

    -#:指定压缩比,默认是6  数字越大,压缩比越大,建议不修改默认值,除非有特定需求

    -c:将压缩结果输出至标准输出,原文件保留;

      使用格式:gzip -c FILE > /PATH/TO/SOMEFILE.gz

        [root@wen-7 ~]# gzip vimrc     
    [root@wen-7 ~]# ll
    总用量 27064
    -rw-r--r-- 1 root root      230 8月  17 09:18 vimrc.gz
    
    [root@wen-7 ~]# gzip -d vimrc 
    [root@wen-7 ~]# ll
    -rw-r--r-- 1 root root      434 8月  17 09:18 vimrc
    
    [root@wen-7 ~]# gzip -7 vimrc 
    [root@wen-7 ~]# ll
    -rw-r--r-- 1 root root      230 8月  17 09:18 vimrc.gz
    
    [root@wen-7 ~]# gzip -c vimrc > /tmp/vim.gz
    [root@wen-7 ~]# ll /tmp
    -rw-r--r-- 1 root root      230 8月  18 09:07 vim.gz

2.bzip2/bunzip2/bcat

  bzip2, bunzip2 – 一种块排序文件压缩软件,v0.9.5

  bzcat – 将文件解压缩至标准输出

  bzip2recover – 恢复损坏的 bzip2 文件

  格式:

    bzip2 [ -cdfkqstvzVL123456789 ] [ filenames …  ]

    bunzip2 [ -fkvsVL ] [ filenames …  ]

    bzcat [ -s ] [ filenames …  ]

    bzip2recover filename

  选项:

    -d:解压缩

    -#:指定压缩比,默认是6  数字越大,压缩比越大,建议不修改默认值,除非有特定需求

    -k –keep:保留原文件

    [root@wen-7 ~]# bzip2 vimrc 
    [root@wen-7 ~]# ll
    -rw-r--r-- 1 root root  255 8月  17 09:18 vimrc.bz2
    [root@wen-7 ~]# bzip2 -d vimrc.bz2 
    [root@wen-7 ~]# ll
    -rw-r--r-- 1 root root  434 8月  17 09:18 vimrc
    [root@wen-7 ~]# bzip2 -7 vimrc 
    [root@wen-7 ~]# ll
    -rw-r--r-- 1 root root  255 8月  17 09:18 vimrc.bz2
    [root@wen-7 ~]# bzip2 -d vimrc.bz2 
    [root@wen-7 ~]# bzip2 -7 -k  vimrc
    [root@wen-7 ~]# ll
    -rw-r--r-- 1 root root  255 8月  17 09:18 vimrc.bz2

3.xz/unxz/xzcat ( 压缩效果最好的压缩工具 )

  unxz is equivalent to xz –decompress.

  xzcat is equivalent to xz –decompress –stdout.

  lzma is equivalent to xz –format=lzma.

  unlzma is equivalent to xz –format=lzma –decompress.

  lzcat is equivalent to xz –format=lzma –decompress –stdout.

  格式:

    xz [option]…  [file]…

  选项:

    -d:解压缩

    -#:指定压缩比,默认是6  数字越大,压缩比越大,建议不修改默认值,除非有特定需求

    -k –keep:保留原文件

[root@wen-7 ~]# xz vimrc
[root@wen-7 ~]# ll
-rw-r--r-- 1 root root  268 8月  17 09:18 vimrc.xz

[root@wen-7 ~]# xz -d vimrc.xz 
[root@wen-7 ~]# xz -7 vimrc 
[root@wen-7 ~]# xz -d vimrc.xz 
[root@wen-7 ~]# xz -7 -k vimrc
[root@wen-7 ~]# ll
-rw-r--r-- 1 root root  434 8月  17 09:18 vimrc
-rw-r--r-- 1 root root  255 8月  17 09:18 vimrc.bz2
-rw-r--r-- 1 root root  268 8月  17 09:18 vimrc.xz

4.zip:最通用的压缩工具

  特点:压缩比有限,zip既能归档,又能压缩

     zip/unzip    

    后缀名: .zip

  格式:

     zip filename.zip file..

[root@wen-7 ~]# zip vim.zip vimrc
  adding: vimrc (deflated 53%)
[root@wen-7 ~]# ll
-rw-r--r-- 1 root root  366 8月  18 09:17 vim.zip


归档工具详解


  刚才介绍的是压缩文具,但压缩工具只能压缩文件,不支持压缩目录.linux而言,要想对目录进行压缩,不对目录里的文件单独压缩,要先对目录进行归档操作,下面为大家介绍归档工具:

  归档工具主要有两个: tar  cplo

1.tar – tar 档案文件管理程序的 GNU 版本。

 格式:

    tar [option] …FIle..

 选项:

   -v: 显示详细信息,可于任何选项一起使用

-c: 创建归档

  配合 -f /PATH/TO/SOMEFILE.tar file…

    [root@wen-7 ~]# tar -cvf /tmp/vim.tar vimrc    
    -rw-r--r-- 1 root root    10240 8月  18 09:28 vim.tar

-x:展开归档

    配合 -f /PATH/TO/SOMEFILE.tar

    默认展开到当期路径下,使用 -C /PATH/TO/SOMEDIR  到指定路径下

        [root@wen-7 ~]# tar xvf /tmp/vim.tar    
        -rw-r--r-- 1 root root  434 8月  17 09:18 vimrc
        
        [root@wen-7 ~]# tar xvfC  /tmp/vim.tar  /mnt
        vimrc
        [root@wen-7 ~]# ll /mnt
        总用量 4
        -rw-r--r-- 1 root root 434 8月  17 09:18 vimrc

   

   -t:查看归档文件的文件列表

    配合-f /PATH/TO/SOMEFILE.tar

       [root@wen-7 ~]# tar -tvf /tmp/vim.tar         
        -rw-r--r-- root/root       434 2016-08-17 09:18 vimrc

    

  扩展:

   文件或目录tar归档后,还可以执行压缩功能,配合压缩工具,就能实现多个文件或目录

    归档并压缩 :

 -z : gzip2

    -zcf /PATH/TO/SOMEFILE.tar.gz file….  创建归档并压缩

    -zxf  /PATH/TO/SOMEFILE.tar.g       解压缩并展开归档

   [root@wen-7 tmp]# tar -zcvf /tmp/vim.tar.gz /tmp/vim.tar    
    -rw-r--r-- 1 root root      360 8月  18 09:47 vim.tar.gz
    
    [root@wen-7 tmp]# tar -zxvf /tmp/vim.tar.gz 
    [root@wen-7 tmp]# ll
    总用量 8
    -rw-r--r-- 1 root root 434 8月  17 09:18 vimrc
    -rw-r--r-- 1 root root 312 8月  18 09:52 vim.tar.gz

 

 -J: bzip2

    -jcf  归档并压缩 

    -jxf  解压缩并展开归档

    [root@wen-7 ~]# tar Jcf /tmp/vim.tar.bzip2 vimrc     
    [root@wen-7 ~]# ll /tmp
    总用量 12
    drwx------ 2 pcp  pcp   39 8月  18 09:55 pcp.7z8yRiYHw
    -rw-r--r-- 1 root root 434 8月  17 09:18 vimrc
    -rw-r--r-- 1 root root 360 8月  18 09:55 vim.tar.bzip2
    -rw-r--r-- 1 root root 360 8月  18 09:54 vim.tar.gz
    [root@wen-7 ~]# tar Jxf /tmp/vim.tar.bzip2 
    [root@wen-7 ~]# ll /tmp
    总用量 12
    -rw-r--r-- 1 root root 434 8月  17 09:18 vimrc
    -rw-r--r-- 1 root root 360 8月  18 09:55 vim.tar.bzip2
    -rw-r--r-- 1 root root 360 8月  18 09:54 vim.tar.gz

 -j: xz

   -jcf 归档并压缩  

   -jxf 解压缩并展开归档

    [root@wen-7 ~]# tar jcf /tmp/vim.tar.xz vimrc     
    [root@wen-7 ~]# ll /tmp
    总用量 16
    -rw-r--r-- 1 root root 434 8月  17 09:18 vimrc
    -rw-r--r-- 1 root root 360 8月  18 09:55 vim.tar.bzip2
    -rw-r--r-- 1 root root 360 8月  18 09:54 vim.tar.gz
    -rw-r--r-- 1 root root 333 8月  18 09:57 vim.tar.xz
    [root@wen-7 ~]# tar jxf /tmp/vim.tar.xz vimrc 
    [root@wen-7 ~]# ll /tmp
    总用量 16
    -rw-r--r-- 1 root root 434 8月  17 09:18 vimrc

实战: 下载redls-3.0.2.tar.gz   https://www.redis.iso

   1.展开至tmp目录,重新创建压缩为xz格式

   [root@wen-7 ~]# tar xvzf redls-3.0.2.tar.gz
        [root@wen-7 ~]# tar -jcf redls-3.0.2.tar.xz sh/
        -rw-r--r-- 1 root root  4739 8月  14 11:05 sdfaf.tar.gz
        -rw-r--r-- 1 root root  4407 8月  14 11:14 sdfaf.tar.xz

2.cpio 复制从或到文件 (打包归档)

   cpio,命令是通过重定向的方式将文件进行打包备份,还原恢复的工具,他可以解压以".cpio"或者".tar"结尾的文件

   格式:

    coip [选项] > 文件名或设备名

    coip [选项] < 文件名或设备名

   选项:

                -o 将文件拷贝打包成文件或者将文件输出到设备上

    -i 解包,将打包文件解压或将设备上的备份还原到系统-

    t 预览,查看文件内容或者输出到设备上的文件内容

    -v 显示打包过程中的文件名称。

    -d 解包生成目录,在cpio还原时,自动的建立目录

    -c 一种较新的存储方式

            

  实战演练:

    1. 将/etc/备份

        [root@wen-7 ~]# find /etc -print| cpio -ov > etc.cpio        
        /etc/smartmontools/smartd_warning.sh
        54092 块
        [root@wen-7 ~]# ll
        总用量 27064
        -rw-r--r-- 1 root root 27695104 8月  17 22:56 etc.cpio

    2. 内容预览

        -rwxr-xr-x 1root root 5767 Jun 10 2014 /etc/smartmontools/smartd_warning.sh        
        54092 块
        [root@wen-7 ~]# cpio -tv < etc.cpio

   3. 要解包文件

        cpio: 未创建 /etc/smartmontools/smartd_warning.sh:已有更新或同样新的版本存在        
        /etc/smartmontools/smartd_warning.sh
        54092 块
        [root@wen-7 ~]# cpio -iv <etc.cpio
        
        /etc/smartmontools/smartd_warning.sh
        54092 块
        [root@wen-7 ~]# cpio -idv <etc.cpio

原创文章,作者:wencx,如若转载,请注明出处:http://www.178linux.com/37120

(0)
wencxwencx
上一篇 2016-08-18
下一篇 2016-08-18

相关推荐

  • heartbeat实现高可用集群(1)

    环境 node1 192.168.1.35 node2 192.168.1.36 fip 192.168.1.80 daemon httpd nfs 192.168.1.15 配置HA集群的前提 1.节点时间必须同步,使用ntp协议实现 2.节点间需要通过主机互相通信,必须解析主机名至IP地址 a.建议名称解析功能能使用hosts文件实现 b.通信中使用的名…

    Linux干货 2017-11-03
  • 分享 (History,Ls,感悟 )

    1.History 选项   -c: 清空命令历史   -d offset: 删除历史中指定的第offset个命令    n: 显示最近的n条历史   -a: 追加本次会话新执行的命令历史列表至历史文件   -n: 读历史文件中未读过的行到历史列表   -r: 读历史文件附加到历史列表 &…

    2017-07-15
  • 文本处理(1)

    文本处理工具最全整理上半部

    Linux干货 2018-03-15
  • TCP/IP

    TCP/IP协议族     互联网协议族(英语:Internet Protocol Suite,缩写IPS)是一个网络通信模型,以及一整个网络传输协议家族,为互联网的基础通信架构。它常被通称为TCP/IP协议族(英语:TCP/IP Protocol Suite,或TCP/IP Protocols),简称TCP/IP。因为该协议家…

    Linux干货 2017-06-26
  • 8月20日程序包管理

    程序包管理 概述    API:Application Program Interface应用编程接口    ABI:Application Binary Interface应用二进制接口    Unix-like,  …

    Linux干货 2016-08-21
  • linux 基础3

    linux 基础3

    Linux干货 2018-03-25