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
解开compress
、zip
、gzip
等软件所压缩的文件,其所对应的压缩文件为*.gz
。
-
语法:
$gzip [-cdtv#] 文件名 $zcat 文件名.gz #zcat可以用来查看gzip压缩的纯文本文件的内容,这样即使不将文件解压 缩,也能看到文件内容,很是方便。
-
选项与参数:
-c : 将压缩的数据输出到屏幕上,用于数据流重定向。可以通过这个选项自定义压缩后的文件名。解压缩也可用该选项 -d : 解压缩的参数。不同于compress(压缩),uncompress(解压缩)。gzip的压缩和解压缩都是命令gzip来实现,-d来控制实际的功能。 -v : 显示源文件/压缩文件的压缩比等信息 -? : ?是数字(取值范围1~9),随着数值的增加,压缩速率越来越慢,压缩比越来越好
-
示例:
通过
gzip -c *.gz > new_name
可以使得*.gz
文件保留,同时被解压的文件名变为new_name
-
tips:
-
gzip
压缩的文件可以在Windows下被_WinRAR_软件解压缩 -
gzip
这个压缩命令主要是想替代compress
,所以使用gzip -d
可以解开compress
的压缩文件,zcat
也可以查看compress
的压缩文件 -
gzip
提供1~9的压缩等级,一般使用默认的6就非常好了。 -
compress
和gzip
一样,若不使用-c
参数,则压缩文件后,原来的被压缩文件会消失,生成新的压缩文件*.Z
或*.gz
-
-c
选项也可用于解压缩过程
-
bzip2,bzcat
bzip2
的压缩比比gzip
还要好,与gzip
的用法基本一致。
-
语法:
$bzip2 [-cdkzv#] 文件名 $bzcat 文件名.bz2
-
选项和参数:
-c : 将压缩数据输出到屏幕上,解压缩的过程也可以使用该参数 -d : 解压缩的参数 -k : 保留原文件,而不会删除原始文件 -z : 解压缩的参数 -v : 显示详细信息 -# : 压缩等级,与gzip同样
-
示例:
从上图可以看出,bzip2
的压缩比高于gzip
,因为原始文件比较小,两者之间的差别不明显。 -
tips:
- 当要解压缩
*.bz2
文件时,可以使用bunzip2
来代替bzip2 -d
。但是gzip -d
__不可__使用gunzip
来代替。 -
-c
参数也可用于解压缩。
- 当要解压缩
打包命令:tar
前面所说的命令,大多是针对单一文件的压缩,虽然gzip
和bzip2
也能对目录进行压缩,但它们实质上是对目录中的所有文件“分别”进行压缩。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:
-
tar
命令的参数非常多,记忆时可以以命令+参数组合
的形式来记忆。 -
tar
命令非常重要,可以用于备份文件,发行软件等。
-
参考资料
- 鸟哥的Linux私房菜-基础学习篇(第三版)