zoukankan      html  css  js  c++  java
  • Linux下文件的压缩与打包

    一、Linux下常见的文件压缩命令:

    在Linux的环境中,压缩文件的扩展名大多是:『*.tar, *.tar.gz, *.tgz, *.gz, *.Z, *.bz2』,为什么会有这样的扩展名呢?

    这是因为 Linux 支持的压缩命令非常多,且不同的命令所用的压缩技术并不相同,当然彼此之间可能就无法互通压缩/解压缩文件罗。 所以,当你下载到某个压缩档时,自然就需要知道该文件是由哪种压缩命令所制作出来的,好用来对照解压缩! 下面是常见的压缩文件扩展名吧:

    *.Z         compress 程序压缩的文件;
    
    *.gz        gzip 程序压缩的文件;
    
    *.bz2       bzip2 程序压缩的文件;
    
    *.tar       tar 程序打包的数据,并没有压缩过;
    
    *.tar.gz    tar 程序打包的文件,其中并且经过 gzip 的压缩
    
    *.tar.bz2   tar 程序打包的文件,其中并且经过 bzip2 的压缩

    Linux上常见的压缩命令就是 gzip 与 bzip2 ,至於 compress 已经退流行了。 gzip 是由 GNU 所开发出来的压缩命令,该命令已经取代了 compress 。 后来 GNU 又开发出 bzip2 这个压缩比更好的压缩命令!不过,这些命令通常仅能针对一个文件来压缩与解压缩,如此一来, 每次压缩与解压缩都要一大堆文件,岂不烦人?此时,那个所谓的『打包软件, tar』就显的很重要啦!

    这个 tar 可以将很多文件『打包』成为一个文件!甚至是目录也可以这么玩。不过,单纯的 tar 功能仅是『打包』而已,亦即是将很多文件集结成为一个文件, 事实上,他并没有提供压缩的功能,后来,GNU中,将整个 tar 与压缩的功能结合在一起,如此一来提供使用者更方便并且更强大的压缩与打包功能! 底下我们就来谈一谈这些在 Linux 底下基本的压缩命令吧!
    ①  gzip命令

    gzip 可以说是应用度最广的压缩命令了!目前 gzip 可以解开 compress, zip 与 gzip 等软件所压缩的文件。 至於 gzip 所创建的压缩文件名为 *.gz!这个命令的语法吧:

    [root@www ~]# gzip [-cdtv#] 文件名
    
    [root@www ~]# zcat 文件名.gz
    
    选项与参数:
    
    -c  :将压缩的数据输出到萤幕上,可透过数据流重导向来处理;
    
    -d  :解压缩的参数;
    
    -t  :可以用来检验一个压缩文件的一致性~看看文件有无错误;
    
    -v  :可以显示出原文件/压缩文件的压缩比等资讯;
    
    -#  :压缩等级,-1 最快,但是压缩比最差、-9 最慢,但是压缩比最好!默认是 -6 

    当你使用 gzip 进行压缩时,在默认的状态下原本的文件会被压缩成为 .gz 的档名, 原始文件就不再存在了

    压缩文件:

    [root@localhost softwore]# gzip -v fs.txt
    fs.txt:  61.5% -- replaced with fs.txt.gz
    
    解压文件:

    [root@localhost softwore]# gzip -d fs.txt.gz
    
    使用zcat读取压缩文件内容:

    cat 可以读取纯文字档,那个 zcat 则可以读取纯文字文件被压缩后的压缩压缩文件! 由於 gzip 这个压缩命令主要想要用来取代 compress 的,所以不但 compress 的压缩文件可以使用 gzip 来解开,同时 zcat 这个命令可以同时读取 compress 与 gzip 的压缩文件!

    [root@localhost softwore]# zcat fs.txt.gz
    host: 
    username: root
    password: 
    java_home_path: /usr/java/jdk1.7.0_75
    mysql_home_path: /usr/local/mysql
    mysql_username: root/reder4
    mysql_password: 
    
    host: 
    username: root
    password: 
    java_home_path: /usr/java/jdk1.7.0_75
    mysql_home_path: /usr/local/mysql
    mysql_username: root/rener4
    mysql_password:
    
    grant create,select,update,delete,insert,drop on render4_fs.* to render4@'%';[root@localhost softwore]# 
    
    ②  bzip2 命令

    [root@www ~]# bzip2 [-cdkzv#] 档名
    
    [root@www ~]# bzcat 档名.bz2
    
    选项与参数:
    
    -c  :将压缩的过程产生的数据输出到萤幕上!
    
    -d  :解压缩的参数
    
    -k  :保留原始文件,而不会删除原始的文件喔!
    
    -z  :压缩的参数
    
    -v  :可以显示出原文件/压缩文件的压缩比等资讯;
    
    -#  :与 gzip 同样的,都是在计算压缩比的参数, -9 最佳, -1 最快!
    
    
    例:

    压缩文件:

    [root@localhost softwore]# bzip2 -v fs.txt
      fs.txt:   1.770:1,  4.519 bits/byte, 43.51% saved, 439 in, 248 out.
    
    解压文件:

    [root@localhost softwore]# bzip2 -d fs.txt.bz2
    
    同zcat命令,bzcat命令同样可以读取被压缩的纯文本文件

    二、打包命令

    tar 可以将多个目录或文件打包成一个大文件,同时还可以透过 gzip/bzip2 的支持,将该文件同时进行压缩!

    tar命令的使用语法:

    [root@www ~]# tar [-j|-z] [cv] [-f 创建的文件名] filename... <==打包与压缩
    
    [root@www ~]# tar [-j|-z] [tv] [-f 创建的文件名]             <==察看档名
    
    [root@www ~]# tar [-j|-z] [xv] [-f 创建的文件名] [-C 目录]   <==解压缩
    
    选项与参数:
    
    -c  :创建打包文件,可搭配 -v 来察看过程中被打包的文件名(filename)
    
    -t  :察看打包文件的内容含有哪些档名,重点在察看『文件名』就是了;
    
    -x  :解打包或解压缩的功能,可以搭配 -C (大写) 在特定目录解开
    
          特别留意的是, -c, -t, -x 不可同时出现在一串命令列中。
    
    -j  :透过 bzip2 的支持进行压缩/解压缩:此时文件名最好为 *.tar.bz2
    
    -z  :透过 gzip  的支持进行压缩/解压缩:此时文件名最好为 *.tar.gz
    
    -v  :在压缩/解压缩的过程中,将正在处理的文件名显示出来!
    
    -f filename:-f 后面要立刻接要被处理的文件名!建议 -f 单独写一个选项罗!
    
    -C 目录    :这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
    
    
    
    其他后续练习会使用到的选项介绍:
    
    -p  :保留备份数据的原本权限与属性,常用於备份(-c)重要的配置档
    
    -P  :保留绝对路径,亦即允许备份数据中含有根目录存在之意;
    
    --exclude=FILE:在压缩的过程中,不要将 FILE 打包! 

    其实最简单的使用 tar 就只要记忆底下的方式即可:

    • 压 缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
    • 查 询:tar -jtv -f filename.tar.bz2
    • 解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录
    例:

    打包压缩操作(打包usr目录下softwore文件夹):

    [root@localhost usr]# tar -jcv -f softwore.tar.bz2 softwore
    softwore/
    softwore/jdk-7u79-linux-x64.rpm
    softwore/fs.txt
    
    查询:

    [root@localhost usr]# tar -jtv -f softwore.tar.bz2
    drwxr-xr-x root/elgin        0 2015-12-21 01:11 softwore/
    -rw-r--r-- elgin/elgin 138082565 2015-12-16 20:08 softwore/jdk-7u79-linux-x64.rpm
    -rw-r--r-- root/root         439 1970-01-01 01:46 softwore/fs.txt
    
    解压缩:

    [root@localhost usr]# tar -jxv -f softwore.tar.bz2 -C /usr/local/softwore
    softwore/
    softwore/jdk-7u79-linux-x64.rpm
    softwore/fs.txt
    
    上述命令将 压缩文件解压到 /usr/local/softwore 这个文件夹下


  • 相关阅读:
    httpsqs消息队列
    Memcache 配置和使用
    nyist 68三点顺序
    nyist 67三角形面积
    rwkj 1363 正方形 长方形 三角形面积
    rwkj 1359 友元:两点距离
    rwkj 1357 矩形--面积-周长
    rwkj 1356 点与矩形
    rwkj 1354 圆周长与面积
    rwkj 1327 圆柱体体积
  • 原文地址:https://www.cnblogs.com/elgin-seth/p/5293733.html
Copyright © 2011-2022 走看看