zoukankan      html  css  js  c++  java
  • chapter9:文件与文件系统的压缩与打包之(1)Linux常见的压缩命令

    一.常见的压缩命令  

    在linux中,压缩文件的扩展名有如下:

    gz :gzip压缩

    bz2 :bzip2压缩.

    tar.:tar程序打包的数据,没有压缩

    tar.gz : tar打包,并由gzip压缩的.

    tar.bz2: tar打包,并由bzip2压缩

    (注意,Linux中的扩展名与文件属性没有关系,只是为了让我们好记.)

    bzip2比gzip压缩效果好,这两个压缩命令只能对一个文件进行压缩,如果要压缩一大堆文件的时候,就要用tar进行打包了.

    1.gzip, zcat 

    压缩文件的扩展名为gz. 语法如:

    gzip [-cdtv#]  文件名

    zcat 文件名.gz

    下面我们将/etc/fstab文件复制到~中,并压缩.

    可以看到,压缩后原文件就不存在了.gzip的压缩文件是window中是可以被winRAR解压的.上面的54%是显示的压缩比.

    我们再将压缩文件中的内容读取出来.由于它是文本文件,可以使用zcat读取.(cat 读取文本文件,zcat读取压缩文本)

    将上面的文件解压

    注意,这里原来的压缩文件没有了.

    2.bzip2,bzcat 

    bzip2是为了取代gzip而开发的.用法与gzip基本一样.

    bzip2 [-cdkzv#] 文件名

    bzcat 文件名.bz2

    -c : 将压缩过程中产生的数据显示出来.

    -d: 解压的参数

    -k: 保留原文件,不删除

    -z: 压缩的参数

    -v: 显示压缩比等

    简单 的记忆命令的方法如下图,

    gzip ,gunzip, bzip2, bunzip2 

    3.打包命令tar

    gzip与bzip2只能对单一文件进行压缩,如果想对多文件进行压缩,则要用到打包命令.tar的几个重要的用法如下

    tar [-j|-z] [cv] [-f 新建文件名] filename <===打包与压缩

    tar [-j|-z] [tv] [-f 新建文件名]  <====查看文件名

    tar [-j|-z] [xv] [-f 新建文件名] [-C 目录] <====解压缩

    参数:

    -c :新建打包文件,可以用 -v 来查看过程中被打包的文件名.

    -t :查看打包文件中的文件名,

    -x :解打包文件.

    -c,-t,-x不可能出现在同一个命令中.

    -j: 通过bzip2进行压缩,解压缩.

    -z: 通过gzip进行压缩,解压缩.

    -v: 在进行的过程中显示文件名.

    -f filename: 建议单独成一个参数.

    -C: 解压缩时到特定的目录.

    最常用的简单的我们只用记

    压缩: tar  -jcv -f filename.tar.bz2  要被压缩的文件或者目录名

    查询: tar -jtv -f filename.tar.bz2

    解压缩: tar -jxv -f filename.tar.bz2 -C 想解压的目录

    tar并不会主动产生创建的文件名,所以我们要自定义,如filename.tar.bz2.

    下面是例子

    (1)打包并压缩

    -p:保留原来的权限与属性,常用于备份重要的文件.注意/被删除.

    如果使用bzip2方法,则如下

    可以看到,bzip2压缩后的文件更小.

    (2)查看tar文件的数据内容,查看的是文件名.

    可以看到,每个文件都被删除了根目录/.这个是为了安全起见的.

    (3) 解压缩,并考虑特定的目录解压

    在所在的目录解压.

    在指定的目录解压

    在这里一小小心将/etc删除了,我们将之前压缩的文件解压缩到了/目录.使用的是-C参数.(好吓人,rm -rf 一定不能乱用)

    主要的几个用法就是上面的,我们还可以仅解压单一文件,还可以只备份比某个时刻还新的文件.

    这里要说一下的时,如果tar打包出来的文件没有进行压缩,则如,如果是只进行打包: tar -cv -f file.tar而已,这个文件我们称为tarfile,如果还进行压缩,如 tar -jcv -f file.tar.bz2,则我们称为tarball.

  • 相关阅读:
    优化MySchool数据库(存储过程)
    优化MySchool数据库(事务、视图、索引)
    优化MySchool数据库(四)
    优化MySchool数据库(三)
    SQLAchemy
    python操作mysql
    python队列
    零碎知识
    super深究
    Python操作RabbitMQ
  • 原文地址:https://www.cnblogs.com/chuiyuan/p/5080492.html
Copyright © 2011-2022 走看看