美文网首页
文件打包压缩

文件打包压缩

作者: linux_python | 来源:发表于2019-08-03 14:01 被阅读0次

    1.目前计算机系统都是用bytes(字节)单位计量
    2.事实上计算机的最小计量单位是bits(位)
    3 . 1byte = 8bits

    1. byte 可以看作底下这样


      图片.png
    2. 8个空格就是8个位而每个空格可以是0或1,现在假设我们之存入了一个1,那会剩余到7个空位,默认情况下这7个位是不可以再写入数据。
    3. 但是压缩技术就是把这些没用到的空间提取出来,以让档案站用的空间变小。

    下面说压缩技术

    常见的压缩

    1. .zip zip程序
    2. .gz gzip程序
    3. .bz2 bzip2程序
    4. .xz xz程序
    5. .tar 打包 不压缩
    6. .tar.gz 打包 经过gzip压缩
    7. .tar.bz2 打包 经过bzip2压缩
    8. .tar.xz 打包 经过xz压缩

    常见命令工具

    gzip bzip2 xz 这些都只能对单个文件进行压缩,不能操作目录。
    而tar打包可以对一个到多个文件或者一个目录打包成一个单一的文件,但单独使用tar命令时,只是打包不压缩。

    gzip

    gzip 压缩解压单个文件
    压缩文件后自动删除源文件,自动添加.gz位拓展名
    解压文件后,自动删除原压缩文件

    gzip  [-vd] file
    -v  压缩是显示压缩比例
    -d  解压
    
    gzip -v services
    查看压缩文件内容
    services.gz
    
    搜索压缩文件关键字位置
    zgrep '   '  services.gz
     
    浏览压缩文件
    zless
    
    解压
    gzip -d
    

    bzip

    更好的压缩比,但是会占用相对多一些的时间。
    用法几乎和gzip一样

    -v显示解压/压缩的比例
    -c将压缩过程产生的数据都输出到屏幕上
    -d解压缩
    -k保留原文件,不会删除原文件
    

    示例

    压缩
    bzip2 -v services
    
    查看压缩文件
    bzcat service.bz2
    bzless service.bz2
    
    解压
    bzip2 -d services.bz2
    

    打包压缩tar

    -c 创建打包文件,可搭配-v来查看打包过程中被打包的文件名
    -t 查看打包文件的文件名,重点在查看"文件名"
    -x 解压缩和解打包的功能,可以搭配 -C(大写)
    在特定的目录解开,特别留意的是 -c -t -x不可同时出现在一串命令中
    
    
    -v  压缩/解压过程中将文件名显示出来。
    -f filename:-f 后面要接文件名,建议-f单独写一个选项
    -c 目录 : 解压缩到特定的目录
    

    只打包不压缩

    创建包
    tar -cvf 创建后的文件名.tar  文档1 文档2
    
    查看包内文件列表
    tar -tf  创建后的文件名.tar
    
    解包到当前位置
    tar  -xf  创建后的文件名.tar
    

    打包后进行压缩

    -z   通过gzip进行压缩/解压文件名最好为 *.tar.gz
    -j   通过gzip2的支持进行压缩/解压  *tar,bz2
    -J  通过xz 的支持进行压缩/解压  *tar.xz
    以上3个选项互斥
    
    
    特别的
    -p(小写) :保留备份数据的原本权限与属性,常用于备份重要的配置文件
    -P(大写) :保留绝对路径,亦即允许备份数据中含有根目录存在之意;
    --exclude=FILE:在压缩的过程中,不要将 FILE 打包!
    

    解压包中的某一个文件

    tar -xf 文件  位置
    

    解压到指定目录

    tar -xf 文件  -C 目录 
    

    压缩的时候排除一个或者文件或者目录

    排除一个文件
    tar  -jcvf t.tar.bz2 d1 d2 --exclude=s1
    
    排除多个文件
    tar -jcvf  t.tar.bz2 d1 d2 --exclude={s1,s2}
    目录也可以
    tar -jcvf t.tar.bz2 d1 d2 --exclude=d1
    

    相关文章

      网友评论

          本文标题:文件打包压缩

          本文链接:https://www.haomeiwen.com/subject/fgsvrctx.html