• Linux 压缩和解压缩


    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选项:归档的文件名

    -P选项:tar默认是找执行tar目录的当前目录下的文件。如果想归档别的目录下的文件或目录,必须加-P选项,然后加绝对路径

    压缩/etc下所有文件,当前执行目录是/root

    # pwd
    /root
    # tar Jcf etc3.tar.xz -P /etc
    

    杠可以不加,但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
  • 相关阅读:
    Appium环境配置
    MongoDB_09——执行计划
    mongoDB_08索引的操作
    MongoDB常用命令
    MongoDB_07_复杂查询
    MongoDB_06_分页查询
    docker-ce 安装
    Kubernetes集群搭建 ver1.20.5
    Deploying Portainer CE in Docker
    mysql常用命令
  • 原文地址:https://www.cnblogs.com/xiaoshiwang/p/12305745.html
Copyright © 2020-2023  润新知