Linux

Linux 系统常见的压缩命令

记录。
环境:CentOS 8

Linux的扩展名没有什么特别的作用,但在Linux环境中,压缩文件的扩展名大多是 *.tar,*.tar.gz,*.tgz,*.gz,*.Z,*.bz2。这是因为Linux支持的压缩命令非常多,某一种命令压缩的文件___一般___(有特例)只能由该命令解压缩。压缩文件的扩展名便可以让我们明确压缩文件该用什么命令解压缩,

Compress

这个命令在老旧系统中常用,目前__很少__用到。如果要使用,需要安装ncompress

$ yum install ncompress  #安装ncompress
  • 语法:

    $compress [-rcv] 文件或目录  #压缩命令
    $uncompress 文件.Z    #使用compress压缩的文件,一般会以.Z为扩展名
    
  • 选项与参数:

    -r	:	连同目录下的文件一起压缩
    -c	:	将压缩的数据输出称为standard output #一般用于数据流重定向
    -v	:	显示压缩过程的相关信息。
    
  • 示例:

    #-c选项的使用
    #man.config为测试用例
    $compress -c man.config > man.config.back.Z
    #在当前目录下,将man.config压缩,将压缩信息放入man.config.back.Z中
    

gzip,zcat

gzip常用的压缩命令,可以使用gzip解开compresszipgzip等软件所压缩的文件,其所对应的压缩文件为*.gz

  • 语法:

    $gzip [-cdtv#] 文件名
    $zcat 文件名.gz       #zcat可以用来查看gzip压缩的纯文本文件的内容,这样即使不将文件解压					 缩,也能看到文件内容,很是方便。
    
  • 选项与参数:

    -c	:	将压缩的数据输出到屏幕上,用于数据流重定向。可以通过这个选项自定义压缩后的文件名。解压缩也可用该选项
    -d	:	解压缩的参数。不同于compress(压缩),uncompress(解压缩)。gzip的压缩和解压缩都是命令gzip来实现,-d来控制实际的功能。
    -v	:	显示源文件/压缩文件的压缩比等信息
    -?	: 	?是数字(取值范围1~9),随着数值的增加,压缩速率越来越慢,压缩比越来越好
    
  • 示例:
    Linux
    Linux

    通过gzip -c *.gz > new_name 可以使得*.gz文件保留,同时被解压的文件名变为new_name

  • tips:

    1. gzip压缩的文件可以在Windows下被_WinRAR_软件解压缩
    2. gzip这个压缩命令主要是想替代compress,所以使用gzip -d可以解开compress的压缩文件,zcat也可以查看compress的压缩文件
    3. gzip提供1~9的压缩等级,一般使用默认的6就非常好了。
    4. compressgzip一样,若不使用-c参数,则压缩文件后,原来的被压缩文件会消失,生成新的压缩文件*.Z*.gz
    5. -c选项也可用于解压缩过程

bzip2,bzcat

bzip2的压缩比比gzip还要好,与gzip的用法基本一致。

  • 语法:

    $bzip2 [-cdkzv#] 文件名
    $bzcat 文件名.bz2
    
  • 选项和参数:

    -c	:	将压缩数据输出到屏幕上,解压缩的过程也可以使用该参数
    -d	:	解压缩的参数
    -k	:	保留原文件,而不会删除原始文件
    -z	:	解压缩的参数
    -v	:	显示详细信息
    -#	:	压缩等级,与gzip同样
    
  • 示例:
    Linux
    从上图可以看出,bzip2的压缩比高于gzip,因为原始文件比较小,两者之间的差别不明显。

  • tips:

    1. 当要解压缩*.bz2文件时,可以使用 bunzip2 来代替 bzip2 -d 。但是 gzip -d __不可__使用gunzip来代替。
    2. -c参数也可用于解压缩。

打包命令:tar

前面所说的命令,大多是针对单一文件的压缩,虽然gzipbzip2也能对目录进行压缩,但它们实质上是对目录中的所有文件“分别”进行压缩。tar命令使用十分广泛,WinRAR也支持对.tar.gz的解压缩。

  • 语法:

    $tar [-j|-z] [cv] [-f 新建文件名] filename            #打包与压缩
    $tar [-j|-z] [tv] [-f 新建的文件名]                   #查看文件名
    $tar [-j|-z] [xv] [-f 新建的文件名] [-C 目录]          #解压缩
    
  • 选项与参数:

    -c	:	新建打包文件。可搭配-v查看过程中被打包的文件名
    -t	:	查看打包文件内容,主要是查看文件名
    -x	:	解打包或解压缩。搭配-C(大写)在特定目录解开
    -j	:	通过bzip2支持进行压缩/解压缩
    -z	:	通过gzip支持进行压缩/解压缩
    -v	:	查看过程中的信息
    -f filename	:后接被处理文件名
    -C 目录	:	在特定目录解压缩
    
    • 记忆三种简单实用的方法:
      • 压缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
      • 查询:tar -jtv -f filename.tar.bz2
      • 解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录
  • tips:

    1. tar命令的参数非常多,记忆时可以以 命令+参数组合 的形式来记忆。
    2. tar命令非常重要,可以用于备份文件,发行软件等。

参考资料

  • 鸟哥的Linux私房菜-基础学习篇(第三版)
上一篇:482. 合唱队形


下一篇:洛谷 P1108 低价购买(LIS统计方案数)