压缩与归档

一、压缩

    压缩:根据一定算法将数据以更加节省空间的形式存放。下面来看一下Linux常见的压缩工具:

    1、gzip/gunzip

        后缀名:.gz

        常用选项:

        -#:压缩比:默认为6,范围0-9。

        -d:解压缩,相当于gunzip。

        -c:将压缩后的结果输出标准输出。

            gzip -c /path/to/somefile > /path/to/somefile.gz

        -v:显示进度。

        zcat someifle.gz:不解压查看gzip压缩后的内容。

        演示:

            先复制一个文件到/tmp目录下:

1.png

2.png3.png

            从上面的结果中可以明显的看出压缩前后的文件大小的区别,而且在压缩完后源文件就不见了,如果我们想保留原文件可以进行以下操作:

4.png

            上面的范例中首先使用-d选项进行了解压缩,也可以使用gunzip命令来实现解压缩;压缩时修改了默认的压缩比,并且保留了源文件。

            如果想要读取压缩后的文件内容,我们可以先将其解压后查看,当然也可以直接使用命令进行查看:

5.png

    2、bzip2/bunzip2

        后缀名: .bz2

        常用选项:

        -#:压缩比:默认为6,范围1-9。

        -d:解压缩,相当于bunzip2。

        -k:保留原文件。

        -c:将压缩后的结果输出标准输出。

        bzcat somefile.bz2:不解压缩查看。

        演示:

1.png2.png            同样,bzip2在压缩后也把源文件搞没了;

3.png

            也可以使用与gzip相同的方法来保留源文件;

4.png

            查看压缩文件的内容:

4.png

    3、xz/unxz

        后缀名: .xz

        常用选项:

        -#:压缩比默认为6, 范围0-9。

        -d:解压缩,相当于unxz。

        -k:保留原文件。

        -c:将压缩后的结果输出标准输出。

        -v:显示进度。

    xzcat somefile.xz:不解压缩查看。

    演示:1.png2.png

    xz命令与gzip、bzip2命令用法类似,就不做过多的演示了。

    以上三种压缩工具都可以虽然都是可以对文件进行压缩,但它的压缩性能是有区别的:

1.png2.png

    分别使用三种工具对同一文件进行同一级别的压缩,结果显示xz的压缩比最高。

    上面介绍的工具只能对单个文件进行压缩,而对于目录是不能操作的,如下图所示:

3.png

    如果想对目录进行压缩可以使用下面的这个命令。

    4、zip/unzip

    后缀名:.zip

        命令格式:zip 文件名.zip 原文件

        支持归档压缩,可将多个文件压缩至一个zip文件中;

        支持对目录进行归档,如zip tmp.zip /tmp/*。

1.png

        针对于目录的压缩通常使用归档工具,所以zip就不过多的介绍了。

二、归档

    归档就是实现将多个文件打包成单个文件。

    使用tar命令来实现归档功能。

        命令格式:tar [option] -f tarfile.tar src_file

            option:            

                -c:创建归档。

                -f FILE.tar:指定归档后的文件。

                -v:显示执行过程。

              -x:展开归档。

                -t:查看归档文件中的内容。

                -z:使用gzip格式压缩和解压缩归档文件。

                -j:使用bzip2格式压缩和解压缩归档文件。

                -J:使用xz格式压缩和解压缩归档文件。

                -C:指定归档的存放路径。

                -p:保留备份数据的原本权限与属性。

                -P:将文件以绝对路径打包。

        演示:

            1、将/etc/目录打包存放到/tmp目录

1.png

            在执行命令时出现两个提示信息,从文件名和硬链接中移除了根目录;其实tar命令打包时是按照相对路径进行打包的,其用意在于将tar包展开时可以在任意目录进行,如果打包时是按照绝对路径的目录存放,那么展开时就会直接按照绝对路径进行恢复,以上图为例,如果/etc目录按照绝对路径打包,那么展开时就会直接恢复到/etc目录,会造成使用旧文件覆盖新文件的问题。

            如果想要以绝对路径对文件打包,可以使用-P选项,下面来看一下这两种方式的不同之处:

1.png3.png

            上面分别以相对路径和绝对路径的方式对/etc目录进行了归档操作,下面我们来看一下两个tar包中的内容:

4.png5.png

            2、对归档文件时行压缩

1.png            3、展开归档文件

1.png2.png

            注意:展开归档文件时,如果归档文件是压缩的,使用相对应的压缩命令选项展开归档文件;以上图为例,归档文件的压缩格式为xz,在展开时可以使用对应的-J选项进行解压展开,也可以直接使用-xf选项,tar命令自动检测包类型并解压。


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

(0)
上一篇 2015-05-03 00:54
下一篇 2015-05-04 18:05

相关推荐

  • Linux基础知识之压缩、解压、归档工具

    压缩、解压、归档工具     压缩格式:gz,bz2,xz,zip,Z 压缩算法不同,压缩比也会不同     1.compress/uncompress (.Z) compress [-dfvcVr] [-b maxbits] [file …] -d: 解压缩,相当于 -c: 结果输出至标准输出, 不删除原…

    Linux干货 2016-08-19
  • Linux基础命令

    Linux基础命令 大家都知道Linux是由许许多多的小程序组成的,而这些小程序是怎么启动的呢?在Linux中这些小程序大多是靠命令来启动运行的 命令(COMMAND):请求内核将某个二进制程序运行为一个进程的过程就是命令 程序由命令运行之后就会形成一个有生命周期的‘进程’,一个静态的二进制程序运行为一个动态的进程是由命令发起的. 在Linux中命令可分为两…

    Linux干货 2016-11-02
  • linux学习笔记: grep命令,正则表达式

    linux学习笔记:grep命令,正则表达式 linux运维笔记 简介 grep命令是一个最初用于Unix操作系统的命令行工具,在给出文件列表或者标准输入之后,grep会对匹配一个或者多个正则表达式的文本进行搜索,并且只输出匹配或者不匹配的行或者文本。(参见维基百科)  正则表达式是计算机科学的一个概念,正则表达式使用单个字符串…

    Linux干货 2017-04-07
  • 用户管理和组管理

         Linux是一个多用户多任务的系统 ,因此学习用户管理和组管理,对我们工作和学习有很大的帮助。用户是你登录这个操作系统的凭证,因此用户的创建和修改,删除是用户管理的基本工作,所以你掌握这些,对你的工作有很好的帮助。 用户账号管理 /etc/passwd username:x: UId:gid:comment:…

    Linux干货 2016-08-10
  • 马哥教育网络班22期-第4周博客作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@zck ~]# cp -r /etc/skel /home/tuser1 [root@zck ~]# ll -d /hom…

    Linux干货 2016-09-02
  • TCP协议详解

    TCP协议详解。     I,TCP数据段报文解释 1,tcp数据段头部20(固定)+40(可变)字节构成,此数据由报头偏移位构成,计算单位为四个字节 表示TCP报文段的首部长度,共4位,由于TCP首部包含一 个长度可变的选项部分,需要指定这个TCP报文段到底有多长。它指 出 TCP 报文段的数据起始处距离 TCP 报文段的起始处有多远。…

    Linux干货 2017-06-26