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

压缩和解压缩工具



概论


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

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

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

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

   目的:时间换空间

 工具:

   压缩:

      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)
上一篇 2016-08-18 08:11
下一篇 2016-08-18 10:09

相关推荐

  • vim编辑器

    导读:      本章将主要介绍Linux中的一种常用文本编辑器vim,具体内容如下:       □使用vi和vim的三种主要模式       移动光标,进入插入模式       改变、删除、复制文本     &n…

    Linux干货 2016-08-15
  • 安全与加密、申请CA证书

    本章内容 v  1、安全机制  2、对称加密  3、不对称加密 4、散列算法  5、PKI 和CA v 在互联网数据传输的过程的,数据的安全私密性是及其重要的,所以就有数据的加密和解密的过程。 数据加密,是一门历史悠久的技术,指通过加密算法和加密密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文。它…

    Linux干货 2016-12-04
  • 简述计算机网络中的物理层

          简要说明物理层在网络传输中做了哪些工作解决的问题      物理层是计算机网络OSI模型中最低的一层。物理层规定:为传输数据所需要的物理链路创建、维持、拆除,而提供具有机械的,电子的,功能的和规范的特性。简单的说,物理层确保原始的数据比特流可在各种物理媒体上传输。使得…

    Linux干货 2017-05-08
  • systemd

    1、systemd (1)CentOS 7 使用systemd替换了SysV。Systemd目的是要取代一直在使用的init系统,兼容SysV和LSB的启动脚本,负责在系统启动或运行时,激活系统资源、服务器进程和其它进程。 (2)systemd的新特性: 系统引导是实现服务并行启动 按需启动守护进程 自动化管理各服务间的依赖关系 同时采用sockets式与D…

    Linux干货 2016-09-21
  • MairaDB之基于openssl的主从复制

    一、配置openssl   1、   在master server(node0)上根CA的搭建(及生成自签名证书) [root@node0 ~]# cd /etc/pki/CA/ [root@node0 CA]# (umask 077;openssl genrsa -out private/cakey.pem 2048) Gen…

    2014-10-03
  • Linux下vim编辑器的使用

    vim编辑器 概括 vim,是vi的升级版本,它不仅兼容vi的所有指令,还有一些新的特性在里面。 使用vi和vim的三种主要模式 vim在工作过程当中有三种模式,编辑模式(命令模式)、输入模式、末行模式     1、编辑模式:也叫命令模式,键盘操作常被理解为编辑命令;     2…

    Linux干货 2016-08-10