• 14.Linux压缩/打包


    今天来讲解一下压缩和打包的相关命令,首先得先明确两个概念,即:压缩和打包

    压缩:将文件或目录进行压强,使文件或目录大小变小
    打包:表示将目录中的所有内容,捆绑在一起,方便传输,打包后的文件会变大,不一定回变小

    1、压缩解压命令:gzip
    原意:GNU(是一个组织) zip
    命令所在路径:/bin/gzip
    执行权限:所有用户
    语法:gzip 选项 [文件]
    功能:压缩文件
    压缩后的文件格式:.gz,gzip和bzip2一样,都会自动产生一个后缀名
    例子:gzip /prem/newfile1
    结果:newfile1.gz 产生了一个newfile1.gz文件,发现源文件不见了
    gzip使用起来非常的简单,但是区别于windows下的winRAR,我们在Linux的所有压缩包放到windows下,winRAR都可以将它解压缩(也就是说windows的WinRAR什么格式的文件都支持,但是Linux就不一定支持了,当然你要安装相应的软件也可以,但是最好不要给自己制造麻烦),但是如果反过来,我们在windows下压缩包放到Linux下,就必须去找一个winRAR的Linux版本了

    gzip还有两个特点:
    (1)、它只能压缩文件,不能压缩目录
    (2)、不保留源文件 newfile1.gz newfile1不在了

    那么怎样实现解压缩呢?有两种方法:

    (1)、gunzip     gunzip /prem/newfile1.gz       解压也是不能保留源文件的,会将被解压的.gz包自动删除
    (2)、gzip -d(decompress表示解压) +压缩包名称
    

    那上面的gzip是不能压缩目录的,那要怎样来压缩目录呢,从而就有了tar
    2、压缩解压命令:tar (不产生后缀名)

    例子:tar -zcf newdir.tar.gz(这是最终的文件名,虽然gzip不需要指定新的文件名,但是由于我们是连贯操作,所以此处需要加上,成为最终的文件名) newdir (-zcf省去了-v),注意:一般都是在当前目录下使用tar进行打包,解包的

    功能:将一个目录打包成一个文件,源目录还是存在的
    语法:tar 选项[cvf] [目录]
    -c 产生.tar打包文件      我们在使用tar打包目录的时候,-c是必要的选项,表示create创建一个打包文件
    -v显示详细信息     可选项,是在命令执行的时候,显示命令执行的过程
    -f指定压缩后的文件名   必选项,该选项必须放在所有选项的后面,后面跟住新的文件名
    -z打包同时压缩   (不是所有的Linux都支持,打包并同时压缩的意思)
    

    例子:tar -zcf newdir.tar.gz(这是最终的文件名,虽然gzip不需要指定新的文件名,但是由于我们是连贯操作,所以此处需要加上,成为最终的文件名) newdir (-zcf省去了-v),注意:一般都是在当前目录下使用tar进行打包,解包的

    表示将newdir打包并压缩,新生成的文件名为newdir.tar.gz(我们严格要求新生成的名字用这种格式来写,即在原来的文件名后直接加上后缀,你也可以写成abc,但是你不好辨认它是不是一个压缩包,但是如果真的在系统中发现有这样的文件,他是不能使用cat,more等命令来查看内容的,此时我们可以使用file abc,他就会告诉我们这是一个gzip文件了)
    结果:-rw-r--r--. 1 root root 114 5 21 21:07 newdir1.tar.gz生成的.tar.gz是一个二进制文件

    压缩后文件格式:.tar.gz(打包后的后缀是.tar,然后再进行压缩就变成了.tar.gz格式了)
    我们在互联网上down下来的源码,很多都是.tar.gz格式的,

    注意:并不是所有的Linux和Unix系统都支持同时打包并压缩的,所以我们还是强调先打包成.tar包,再对这个.tar包进行压缩
    (1)、tar -cf newdir.tar newdir (省去-z压缩,省去-v显示打包详情)
    (2)、gzip newdir.tar 就会得到一个newdir.tar.gz文件了 ,此时就可以使用gzip来压缩一个包,此时包已经不是目录的类型了,注意gzip是不可以压缩目录的

    那么如何解包呢?
    也是使用tar,但是选项不同
    -x 解包.tar文件
    -v显示详细信息
    -f指定解压文件
    -z解压缩
    例子:tar -zxf newdir.tar.gz   将newdir.tar.gz解包到当前目录下(打包是-zcf,c表示创建,x表示execute)
    那如果要分两步:
    
    (1)、gunzip newdir.tar.gz
    (2)、tar -xf newdir.tar  (少了一个-z解压缩)
    

    3、压缩解压命令zip (注意:该命令不自动产生后缀名,会保留源文件,用得最多的压缩命令)
    .zip格式,是windows和Linux同时都支持的格式,所以我们在windows和Linux下共享文件的时候,如果文件不是特别大,我们就可以使用.zip格式的了,因为在两个系统上都可以支持对他进行解压缩,可以压缩文件,也可以压缩目录

    例子:zip newfile.zip newfile 和tar比较像,也是先写压缩后的文件名,再是源文件名
    显示: newfile1 newfile1.gz,和gzip不同的是,它会保留原文件
    例子:zip services.zip /etc/services
    可以看到一个压缩比:
    newfile2 services.zip,压缩后的文件会在当前目录中显示
    同样,想压缩目录也是可以的,只要加上一个选项-r,不加-r时,压缩目录不会报错,但是压缩比永远都为0%,即压缩后大小和源目录一样。
    zip -r newdir.zip newdir (此时如果压缩目录时,不使用-r选项,则会虽然没有报错,实际上没有压缩成功) 也是先写新的文件名,再写源文件名(参数,就是命令的操作对象),注意,一定要将后缀名写上,即使LINUX对文件名要求不是很高

    那如何对.zip文件进行解压缩呢?可以使用unzip,很简单
    unzip newdir.zip 或者 unzip newfile.zip
    解压的时候,不管是对文件,还是对目录,都不需要加 -r

    zip有两个优点:
    (1)、保留了源文件
    (2)、可以压缩目录
    解决了gzip的两个缺点,同时他是和windows兼容最好的格式
    (注意,使用gzip的时候,后缀gz会自动填充,gzip newfile就表示压缩newfile文件,使用tar的时候,后缀名最好为tar,使用zip的时候,后缀名最好为zip)

    4、压缩解压命令:bzip2 不能压缩目录,但由于有-k选项,所以可以保留源文件
    实际上,bzip2是gzip的升级版,像之前说的,gzip又不能压缩目录,又不能保留源文件,是不是要淘汰了呢,实际上还是有广泛的应用。别看它只是一个命令,但他的压缩比非常的惊人。Linux的压缩比非常的惊人,比windows要大得多,尤其是这个bzip2,特别适合压缩大型的文件。(zip适合压缩小文件)
    bzip2和gzip非常相似,只是加了一个选项,-k(表示keep,保留),可以保留源文件,不加-k,是跟gzip完全一样的

    语法:bzip2 选项[-k] [文件]
    
    压缩后的格式:.bz2          gzip和bzip2一样,都会自动产生一个后缀名
    例子:bzip2 -k newfile2
    显示: newfile2.bz2  newfile2     保留了源文件
    那如何对.bz2文件进行解压缩呢
    使用:bunzip2  选项 [-k] 解压缩后保留源文件(保留原来的压缩包) ,对gzip压缩的文件进行解压,使用gunzip newfile.gz
    bunzip2 newfile2.bz2  
    
    还可以像gzip 那样,加上-d选项(decompress解压),
    bzip2 -d newfile.bz2     对.bz2文件进行解压
    也可以加上-k(keep)保留源文件       bzip2 -dk newfile.bz2         此时将保留源文件,并且解压缩文件newfile.bz2
    
    
  • 相关阅读:
    jQuery.ajax()文档
    jQuery的deferred对象详解(转载)
    Gulp学习指南之CSS合并、压缩与MD5命名及路径替换(转载)
    Gulp入门教程(转载)
    gulp详细入门教程(转载)
    使用 gulp 搭建前端环境入门篇(转载)
    前端大牛们都学过哪些东西?
    纯CSS实现帅气的SVG路径描边动画效果(转载)
    Web动画API教程2:AnimationPlayer和Timeline
    redis学习五 集群配置
  • 原文地址:https://www.cnblogs.com/yinwu/p/11378278.html
Copyright © 2020-2023  润新知