• ubantu 文件解压缩


      对于刚刚接触Linux的人来说,一定会给Linux下一大堆各式各样的文件名给搞晕。别个不说,单单就压缩文件为例,我们知道在Windows下最常见 的压缩文件就只有两种,一是,zip,另一个是.rar。可是Linux就不同了,它有.gz、.tar.gz、tgz、bz2、.Z、.tar等众多的 压缩文件名,此外windows下的.zip和.rar也可以在Linux下使用,不过在Linux使用.zip和.rar的人就太少了。本文就来对这些 常见的压缩文件进行一番小结,希望你下次遇到这些文件时不至于被搞晕。

      在具体总结各类压缩文件之前呢,首先要弄清两个概念:打包和压缩。打包是指将一大堆文件或目录什么的变成一个总的文件,压缩则是将一个大的文件通过一些压 缩算法变成一个小文件。为什么要区分这两个概念呢?其实这源于Linux中的很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你就 得先借助另它的工具将这一大堆文件先打成一个包,然后再就原来的压缩程序进行压缩。

    ZIP

    zip可能是目前使用得最多的文档压缩格式。它最大的优点就是在不同的操作系统平台,比如Linux, Windows以及Mac OS,上使用。缺点就是支持的压缩率不是很高,而tar.gz和tar.gz2在压缩率方面做得非常好。闲话少说,我们步入正题吧:

    linux下提供了zip和unzip程序,zip是压缩程序,unzip是解压程序。常用命令选项:

    -d   从压缩文件内删除指定的文件,要解压到指定目录需要在目录前指定-d。

    -m  将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。

    -q   不显示指令执行过程。

    -r   递归处理,将指定目录下的所有文件和子目录一并处理。

    -S   包含系统和隐藏文件

    -v   显示指令执行过程或显示版本信息。

    -i<范本样式> 只压缩符合条件的文件。

    -x<范本样式> 压缩时排除符合条件的文件。

    -n  <字尾字符串> 不压缩具有特定字尾字符串的文件。

    -<压缩效率> 压缩效率是一个介于1-9的 数值。

    举例:

    zip -r mydata.zip mydata          //将mydata目录压缩为mydata.zip
    unzip mydata.zip -d mydatabak      //将mydata.zip解压到mydatabak目录,注意要-d
    unzip mydata.zip               //将mydata.zip解压到当前mydata目录
    unzip dsw*.zip               //将dsw目录下的所有zip文件解压到dsw目录下
    unzip -v wwwroot.zip           //查看wwwroot.zip里面的内容

    RAR

    要在linux下处理.rar文件,需要安装RAR for Linux,可以从网上下载,但要记住,RAR for Linux不是免费的,然后安装:

    tar -xzpvf rarlinux-3.2.0.tar.gz
    cd rar
    make

    这样就安装好了,安装后就有了rar和unrar这两个程序,rar是压缩程序,unrar是解压程序。

    rar x vpsyou.rar           //解压 vpsyou.rar 到当前目录 
    rar vpsyou.rar ./vpsyou.com/     //将 vpsyou.com 目录打包为 vpsyou.rar 
    rar c test.rar            //
    rar d test.rar file1.txt      //从test.rar包中删除file1.txt
    rar e test.rar            //不能保存当前目录结构,所有文件都在本目录
    rar x test.rar            //解压出来会保存目录结构

    a 添加文件到操作文档

    c 对操作文档添加说明注释

    d 从文档中删除文件

    e 将文件解压到当前目录(所有的文件被解压到当前目录,不能保持压缩前的目录结构,如果想保持压缩前的目录结构,用x解压)

    x 带路径解压文档中内容到当前目录 

    TAR

    Tar是在Linux中使用得非常广泛的文档打包格式。它的好处就是它只消耗非常少的CPU以及时间去打包文件,他仅仅只是一个打包工具,并不负责压缩。

    如何打包:

    # tar -cvf archive_name.tar directory_to_compress

    如何解包:

    # tar -xvf archive_name.tar /tmp/  //后面解压路径为null时,默认解压到当前路径

    常用参数:

    -c 建立新的归档文件
    -r 向归档文件末尾追加文件
    -x 从归档文件中解出文件
    可以这样记忆,创建新的文件是c,追加在原有文件上用r,从文件中解压出用x

    -t  查看内容
    -O 将文件解开到标准输出
    -v 处理过程中输出相关信息
    -f 对普通文件操作                  //似乎一直都要用f,不然的话,可能会不显示

    -j  调用bzip2来压缩归档文件
    -z 调用gzip来压缩归档文件,与-x联用时调用gzip完成解压缩
    -Z 调用compress来压缩归档文件,与-x联用时调用compress完成解压缩

    -p :使用原文件的原来属性(属性不会依据使用者而变)
    -P :可以使用绝对路径来压缩!
    -N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
    --exclude FILE:在压缩的过程中,不要将 FILE 打包!

    举例:

    tar cvf dsw.tar dsw                   //将dsw文件打包为tar文件
    tar czvf dsw.tar.gz dsw                 //z结合c时,表示将文件打包为tar.gz格式 tar xzvf dsw.tar.gz                    //z结合x时,表示将文件从.tar.gz包中解压
    tar zxvf dsw.tar.gz -C builds             //指定解压dsw到builds目录,注意需要-C
    tar zcvfp back.tar.gz ./new             //打包new目录下所有文件,并保留其原有属性 tar -zcvf file.tar.gz ./new/ --exclude ./new/tmp  //打包new目录下除tmp之外的所有文件夹

    TAR.GZ TAR.Z TAR.BZ2

    tar.gz这种格式是我使用得最多的压缩格式。它在压缩时不会占用太多CPU的,而且可以得到一个非常理想的压缩率。与gzip相对的解压程序是gunzip

    compress也是一个压缩程序,但是好象使用compress的人不如gzip和bzip2的人多,Z结尾的文件就是bzip2压缩的结果.与 compress相对的解压程序是uncompress ,tar中使用-Z这个参数来调用compress。

    bzip2是一个压缩能力更强的压缩程序,.bz2结尾的文件就是bzip2压缩的结果,这种压缩格式是我们提到的所有方式中压缩率最好的。当然,这也就意味着,它比前面的方式要占用更多的CPU与时间。与bzip2相对的解压程序是bunzip2,tar中使用-j这个参数来调用gzip

    注意:请注意z和Z与tar中c(归档),x(解压)配合使用

    z + c = 将文件打包并使用gzip压缩为tar.gz

    z + x = 将压缩包使用gzip将包解压

    Z + c = 将文件打包并使用compress压缩为tar.Z

    Z + x = 将压缩包使用compress解压

    j  + c = 将文件打包并使用bzip2压缩为tar.bz2

    j  + x =  将压缩包使用gzip将包解压

    解压缩:

    tar -cZf all.tar.Z *.jpg      //将所有.jpg文件打成tar包,并且其用compress压缩
    tar -xZf all.tar.Z          //将上面打的包解开
    上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来捏住解包的路径:
    tar -zxvf archive_name.tar.gz -C /tmp/extract_here/

    tar -cjf all.tar.bz2 *.jpg    //将所有.jpg文件打包成tar包,并且使用bzip2压缩
    tar -xjf all.tar.bz2        //将上面打的包解压 

     上面这个解包命令将会将文档解开在当前目录下面。当然,你也可以用这个命令来捏住解包的路径:

     tar -jxvf archive_name.tar.bz2 -C /tmp/extract_here/

    
    
  • 相关阅读:
    SpringBoot整合MyBatis【数据库连接】
    SpringBoot整合日志
    SpringBoot引用lombok让代码更简洁
    AOP集成log4j日志
    SpringBoot全局捕获异常
    SpringBoot整合Freemarker
    springboot配置请求跨域问题
    Maven工程的pom文件引用本地jar包
    使用Mybatis插件generator自动生成代码
    SET NOCOUNT 的用法
  • 原文地址:https://www.cnblogs.com/DswCnblog/p/5615323.html
Copyright © 2020-2023  润新知