一,在Linux的环境中,压缩文件的扩展名大多是.tar, .tar.gz, .tgz, .gz, .Z, .bz2 。这几种扩展名分别是通过不同的压缩技术得到的:
.Z: compress程序压缩的文件
.gz: gzip程序压缩的文件
.bz2: bzip2程序压缩的文件
.tar: tar:程序打包的数据,并没有压缩过
.tar.gz:tar程序打包的文件,其中经过gzip的压缩
.tar.bz2:tar程序打包的文件,其中经过bzip2的压缩
Linux上常见的压缩命令就是gzip与bzip2。
- Compress(已经不再流行了)
我们的CentOS默认没有安装这个软件到系统中,所以想要了解这个软件的使用,请先安装ncompress:yum install -y ncompress
这里不再介绍该命令,想学习的可以通过互联网查询相关用法 - gzip,zcat
gzip可以说是应用最广的压缩命令了,目前gzip可以解开compress、zip与gzip等软件压缩的文件。
命令格式:
gzip [-cdtv#] 文件名
zcat 文件名.gz
参数:
-c:将压缩的数据输出到屏幕上,可通过数据流重定向来处理
-d:解压缩的参数
-t:可以用来检验一个压缩文件的一致性,看看文件有无错误
-v:可以显示原文件/压缩文件的压缩比等信息
-#:压缩等级,-1最快,但是压缩比最差,-9最慢,但是压缩比最好,默认-6#将/etc/man.config复制到/tmp中,并且以gzip压缩
cd /tmp
cp /etc/man.config .
gzip -v man.config
与compress类似,当你使用gzip进行压缩时,在默认的状态下,原本的文件会被压缩成.gz的文件名,源文件就不再存在了。此外,使用gzip压缩的文件在Windows系统中,竟然可以被WinRAR这个软件解压缩。由于man.config这个原本文件是文本文件,因此我们可以尝试使用zcat去读取:
zcat man.config.gz - bzip2,bzcat
若说gzip是为了替代compress并提供更好的压缩比而成立的,那么bzip2则是为了取代gzip并提供更佳的压缩比而来的。命令格式:
bzip2 [-cdkzv#] 文件名
bzcat 文件名.bz2
参数:
-c:将压缩过程中产生的数据输出到屏幕上
-d:解压缩的参数
-k:保留原文件,而不会删除原始文件
-z:压缩的参数(gzip命令无此参数,gzip使用-v压缩)
-v:可以显示原文件/压缩文件的压缩比等信息
-#:与gzip同样的,都是计算压缩比的参数
示例:
#将刚才的/tmp/man.config以bzip2压缩
bzip2 -z man.config
#将上面压缩后的文件内容读出来
bzcat man.config.gz2
#将其解压缩
bzip2 -d man.config.bz2
#将man.config用最佳的压缩比压缩,并保留原本的文件
bzip2 -9 -c man.config > man.config.bz2
二,打包命令:tar
- tar的参数非常多,下面只介绍几个常用的参数,更多参数可以自行man tar 查询
命令格式:
tar [-j|-z][cv][-f 新建的文件名] filename… #打包与压缩
tar [-j|-z][tv][-f 新建的文件名] #查看文件名
tar [-j|-z] [xv][-f 新建的文件名][-C 目录] #解压缩
参数:
-c:新建打包文件,可搭配-v来查看过程中被打包的文件名filename
-t:查看打包文件的内容含有哪些文件名,重点在查看文件名
-x:解打包或解压缩的功能,可以搭配-C在特定目录解开
-j:通过bzip2的支持进行压缩/解压缩,此时文件名最好为*.tar.bz2
-z:通过gzip的支持进行压缩/解压缩,此时文件名最好为*.tar.gz
-v:在压缩/解压缩的过程中,将正在处理的文件名显示出来
-f filename:-f后面要接被处理的文件名
-C 目录:这个参数在解压缩时,若要在特定目录解压缩,可以使用这个参数我自己常用的压缩打包、解压缩命令:
(1) tar -zcvf 压缩包名.tar.gz 源文件 #其实就是先打包为.tar格式,再压缩为.gz格式。
(2)tar -zxvf 压缩包名.tar.gz
参考:Linux私房菜第三版