zoukankan      html  css  js  c++  java
  • 16 Linux系统的文件压缩、解压与归档

      这一节的内容,我们详细介绍下Linux的文件压缩、解压缩与文件归档的内容,也就是tar、gzip、bzip2、xz等命令的内容;

    压缩(compress)与解压缩(uncompress)

      Linux系统下常见的压缩格式有:gz,bz2,xz,zip,z

      文件压缩的原理:文本文件中经常出现的字符,通过一个特定的代码来代替,及压缩;例如:abcadffgabc 这一段字符串中出现 abc 两次,用 1 替代 abc,则变为 1adffg1 这样字符串就少了,这就是压缩的过程;解压缩,则是使用 abc 在将 1 这个内容替换回来,及解压缩;

      但是,每一种压缩软件的方式是不一样的,也就是压缩的算法不同,这样导致压缩后文件的比例(压缩比)也是不一样的;

      常见的压缩方式:gzip bzip2 xz

        gzip:后缀为 .gz 的文件,及通过gzip软件压缩的文件;1、gzip只能压缩文件,不能压缩目录;2、默认情况下,被压缩的文件压缩好以后,只留压缩 .gz 的压缩文件,删除原文件;

          用法:gzip /PATH/TO/SOMEFILE    #在当前目录下创建压缩文件

          -[1-9]  指定压缩比,默认的压缩比为6;

            这里可以通过 du -h 来查看文件前后的大小情况;

          -d  解压缩

            或者通过命令 gunzip;解压完后,同样会删除掉原来的压缩文件,只保留解压后的文件;

              用法:gunzip /PATH/TO/SOMFILE.gz

        zcat  临时查看压缩文件的内容,这里并没有将压缩文件解压出来;

          用法:zcat /PATH/TO/SOMEFILE.gz

        

        bzip2:压缩后的文件为 .bz2 结尾;比 gzip 有着更大的压缩比,但是最对小文件而言没有任何优势,甚至压缩出来的文件比 gzip 压缩的文件还要大;使用方式与 gzip 相似;

          用法:bzip2 /PATH/TO/SAMEFILE  #它也是只能压缩文件,不能压缩目录  

           -d  解压缩

            或者通过 bunzip2 解压缩;

              用法:bunzip2 /PATH/TO/SOMEFILE.bz2

          -[1-9]  指定默认的压缩比,默认为6

          -k  可以保存原来的文件,默认压缩、或者解压后,原来的文件都会被删除,-k 就可保留原来的文件;

        bzcat  同样是不解压文件可以显示压缩文件的内容

          用法:bzcat /PATH/TO/SOMEFILE.bz2

        xz:压缩后的文件为 .xz 后缀结尾;如果没有安装,则可以通过 yum install xz 来安装xz压缩工具;

          用法:xz /PATH/TO/SOMEFILE

          -d  解压文件

            或者通过 unxz 来进行文件解压;

          -[1-9]  指定压缩比,默认压缩比为6

          -k  保留源文件

        xzcat  则是不解压文件,查看压缩文件的内容;

    文件归档

      归档和压缩时两件事,压缩时将同一个文件变的更小;而归档,则是将多个文件收纳在一起,不改变原有文件的大小,这个作用一般用来做数据备份;

      常用的归档工具有:zip(也可以进行文件压缩) tar cpio

      zip:zip及归档,同时它也可以作为压缩文件的工具;

        用法:zip FILENAME.zip FILE1 FILE2 FILE3 ...  #先指定一个文件名,然后可以同时对多个文件进行压缩与归档,这个文件可以对目录进行操作

        将后面多个文件压缩到一个文件中,这个功能我们叫做 archive 归档,归档本身并不意味着压缩;

      unzip  通过 zip 工具压缩的文件,进行解压;

      tar:文件归档,不对文件进行压缩(自身存储了很多的元数据),它是一个很好使用的备份工具;

        -c  创建归档文件

        -f FILE.tar  指定归档的文件【自己定义文件名,FILE.tar,建议以 .tar 结尾】

          例如:tar -cf test.tzr test*.txt

        -x  显示源文件

        --xattrs  在归档的同时,也保留文件的扩展属性信息(一般用来做文件备份)

        -t  不展开归档,直接查看归档那些文件,就好比 zcat bzcat xzcat 不解压文件,查看解压内容;

          例如:tar -tf test.tar

        -[z|j|J]cf  z表示通过 gzip 对文件进行压缩,j表示通过 bzip2 对文件进行压缩,同时 -J 表示使用 xz 对文件进行压缩,并进行归档

        -[z|j|J]xf  表示对 gzip/bzip2/xz 文件进行解压【解压文件可以不用指定解压软件,因为tar工具可以自己识别压缩工具】

        

      cpio:copy files to and from archives 复制一个文档,并归档;所以,这个工具也是进行归档工具,但是使用较少;

        这里我们可以看到:initramfs-2.6.32-431.el6.i686.img 是一个 gzip 的压缩文件,解压以后,我们就知道这是一个 cpio 归档后的文件;

        

        

  • 相关阅读:
    基于Maven的MyBatis Generator逆向工程
    JQuery对象调用reset方法:Uncaught TypeError: $(...).reset is not a function
    死锁编码及定位分析
    线程池的简介及底层原理
    转载:Mysql8.0忘记 root 密码, 如何修改?
    synchronized 和 Lock 有什么区别?
    java 中的阻塞队列及生产者-消费者中的简单应用
    java 中 CountDownLatch、CyclicBarrier 和 Semaphore 的简单使用
    java中的公平锁、非公平锁、可重入锁、递归锁、自旋锁、独占锁和共享锁
    Java 集合类的线程安全问题及解决方法
  • 原文地址:https://www.cnblogs.com/BurnovBlog/p/10444952.html
Copyright © 2011-2022 走看看