zoukankan      html  css  js  c++  java
  • Linux 压缩和解压缩

    压缩和解压缩

    • 最早的:compress/uncompresse 文件名后缀:.Z

    • 然后是:gzip/gunzip 文件名后缀:.gz

      很久一段gzip是linux的标准压缩和解压缩算法了

    • 然后是:bzip2/bunizip2 文件名后缀:.bz2

      大文件的压缩比比gzip大一点,但是小文件的压缩比还没有gzip大,所以没能撼动gzip的地位

    • 然后是:xz/unxz 文件名后缀:.xz

      压缩比显著提高,撼动了gzip的地位

      lzma/unlama 文件名后缀:.lzma

    • 最通用的(所以操作系统都支持):zip/unzip

    Linux 归档:上述压缩工具,只能对文件压缩,不能对目录压缩。要想对目录压缩,必须要归档后,再对归档文件压缩。

    • tar,cpio

    gzip/gunzip/zcat

    1,压缩:gzip file

    压缩完成后,会自动删除原文件

    # ll -h messages
    -rw-------. 1 root root 915K Feb 11 22:05 messages
    [root@localhost ~]# gzip messages
    [root@localhost ~]# ll -h messages.gz
    -rw-------. 1 root root 167K Feb 11 22:05 messages.gz
    

    2,解压缩:gzip -d或者gunzip

    解压缩完成后,会自动删除压缩文件

    # gunzip messages.gz
    [root@localhost ~]# ll -h messages
    -rw-------. 1 root root 915K Feb 11 22:05 messages
    # gzip -d messages.gz
    [root@localhost ~]# ll -h messages*
    -rw-r--r--. 1 root root 915K Feb 11 22:06 messages
    

    3,指定压缩比,默认是6,压缩比越大,压缩后的文件的空间越小。范围是1-9

    # gzip -9 messages
    [root@localhost ~]# ll -h messages.gz
    -rw-r--r--. 1 root root 164K Feb 11 22:06 messages.gz
    

    4,压缩后保留原来的文件:gzip file -c > zxx.gz

    # gzip -c messages > messages.gz
    [root@localhost ~]# ll -h messages*
    -rw-------. 1 root root 915K Feb 11 22:05 messages
    -rw-r--r--. 1 root root 167K Feb 11 22:06 messages.gz
    

    5,不解压缩,直接查看压缩文件里的内容:zcat messages.gz

    bzip2/bunzip2/bzcat

    1,压缩:bzip2 file

    压缩完成后,会自动删除原文件

    # ll
    -rw-r--r--. 1 root root 936782 Feb 11 22:06 messages
    # bzip2 messages
    # ll
    -rw-r--r--. 1 root root 69193 Feb 11 22:06 messages.bz2
    

    2,解压缩:bzip2 -d或者bunzip2

    解压缩完成后,会自动删除压缩文件

    # bzip2 -d messages.bz2
    [root@localhost ~]# ll messages
    -rw-r--r--. 1 root root 936782 Feb 11 22:06 messages
    # bunzip2 messages.bz2
    [root@localhost ~]# ll
    -rw-r--r--. 1 root root 936782 Feb 11 22:06 messages
    
    

    3,指定压缩比,默认是6,压缩比越大,压缩后的文件的空间越小。范围是1-9

    # bzip2 -9 messages
    [root@localhost ~]# ll
    -rw-r--r--. 1 root root 69193 Feb 11 22:06 messages.bz2
    

    4,压缩后保留原来的文件:gzip file -k

    # bzip2 -k messages
    [root@localhost ~]# ll messages*
    -rw-r--r--. 1 root root 936782 Feb 11 22:06 messages
    -rw-r--r--. 1 root root  69193 Feb 11 22:06 messages.bz2
    

    5,不解压缩,直接查看压缩文件里的内容:bzcat messages.bz2

    xz/unxz/xzcat和lzma/unlzma/lzcat

    1,压缩:xz file

    压缩完成后,会自动删除原文件

    # xz messages
    [root@localhost ~]# ll
    -rw-r--r--. 1 root root 57328 Feb 11 22:06 messages.xz
    

    2,解压缩:xz -d或者unxz

    解压缩完成后,会自动删除压缩文件

    # xz -d messages.xz
    [root@localhost ~]# ll
    -rw-r--r--. 1 root root 936782 Feb 11 22:06 messages
    # unxz messages.xz
    # ll
    -rw-r--r--. 1 root root 936782 Feb 11 22:06 messages
    

    3,指定压缩比,默认是6,压缩比越大,压缩后的文件的空间越小。范围是1-9

    # xz -9 messages
    [root@localhost ~]# ll
    -rw-r--r--. 1 root root 57328 Feb 11 22:06 messages.xz
    

    4,压缩后保留原来的文件:xz file -k

    # xz -k messages
    [root@localhost ~]# ll
    -rw-r--r--. 1 root root 936782 Feb 11 22:06 messages
    -rw-r--r--. 1 root root  57328 Feb 11 22:06 messages.xz
    

    5,不解压缩,直接查看压缩文件里的内容:xzcat messages.xz

    归档

    1,创建归档

    -c选项:创建归档

    -f选项:归档的文件名

    杠可以不加,但f一定要放到最后,因为后面的参数:归档文件名是给f选项用的

    # ls
    anaconda-ks.cfg  initial-setup-ks.cfg  messages  messages.xz
    [root@localhost ~]# tar cf me.tar messages messages.xz
    [root@localhost ~]# ls
    anaconda-ks.cfg  initial-setup-ks.cfg  messages  messages.xz  me.tar
    

    2,查看归档里的文件列表

    -t选项:查看归档里的文件列表

    # tar tf me.tar
    messages
    messages.xz
    

    3,展开归档

    -x选项:展开归档

    不使用-C就是展开在当前目录,使用-C展开到指定目录。

    # tar xf me.tar -C /tmp
    # ls /tmp/
    messages
    messages.xz
    
    

    4,压缩归档文件

    用gzip,bzip2,xz都可以压缩归档文件

    # gzip me.tar
    # ll me.tar.gz
    -rw-r--r--. 1 root root 228051 Feb 12 08:53 me.tar.gz
    

    归档并压缩

    归档和压缩能一起做

    1,归档后,以gzip算法压缩/解压缩

    • 压缩:zcf

      # tar zcf me3.tar.gz messages messages.xz
      # ll me3.tar.gz
      -rw-r--r--. 1 root root 228044 Feb 12 11:43 me3.tar.gz
      
    • 解压缩:zxf

      # tar zxf me3.tar.gz
      

    2,归档后,以bzip2算法压缩/解压缩

    • 压缩:jcf

      # tar jcf me3.tar.bz2 messages messages.xz
      
    • 解压缩:jxf

      # tar jxf me3.tar.bz2
      

    3,归档后,以xz算法压缩/解压缩

    • 压缩:Jcf

      # tar Jcf me4.tar.xz messages messages.xz
      
    • 解压缩:Jxf

      # tar Jxf me4.tar.xz
      

    zip/unzip:归档且压缩

    # zip me.zip messages messages.xz
    # unzip me.zip
    
    # c/c++ 学习互助QQ群:877684253 ![](https://img2018.cnblogs.com/blog/1414315/201811/1414315-20181106214320230-961379709.jpg) # 本人微信:xiaoshitou5854
  • 相关阅读:
    hdu-1116(欧拉回路+并查集)
    hdu-1143(简单dp)
    hdu-1141
    JAVA里面获取map的key和value的方法
    MySQL中Date,DateTime,TimeStamp和Time的比较
    idea中修改git提交代码的用户名
    spring配置多个视图解析
    判断Map集合中是否存在某一个key
    win10家庭版升级为win10专业版
    MyBatis模糊查询的三种拼接方式
  • 原文地址:https://www.cnblogs.com/xiaoshiwang/p/12299162.html
Copyright © 2011-2022 走看看