Linux下,压缩文件的格式有:.tar.gz,.tar, .gz , .bz2 , .zip等格式
常见后缀名所对应的压缩工具:
① .gz:表示由 gzip 压缩工具压缩的文件
②.bz2:表示有 bzip2 压缩工具压缩的文件
③ .tar:表示由tar打包程序打包的文件(tar并没有压缩功能,只是把一个目录合并成一个文件)
④ .tar.gz:先由 tar打包,然后再由 gzip 压缩
⑤ .tar.bz2:先由tar打包,然后再由 bzip2 压缩
1.gzip压缩工具
gzip 【-d#】 filename,# 为 1-9 的数字
-d:解压时使用
-#:表示压缩等级,1为最差,9为最好,6为默认
gzip 后面直接跟文件名,表示在当前目录下压缩文件
2.bzip2压缩工具
bzip2 [-dz] filename:加不加 -z都可以压缩文件,该命令也不可以压缩目录,-d为解压
3.tar压缩工具
tar时一个打包工具,可以把目录大包成一个文件,它吧所有文件整合成一个文件整体,方便复制或者移动
tar【-zjxcvfpP】 filename
选项:
①-z:表示同时用 gzip 压缩
②-j:表示同时用 bzip2 压缩
③-x:表示解包或者解压缩
④-t:表示查看tar包里的文件
⑤-c: 表好似建立一个tar包或者压缩文件包
⑥-v:表示可视化--压缩的时候过程可见不可见
⑦-f:后面跟文件名filename,表示压缩后文件名为filename,或者解压文件filename,
如果是多个参数时,该-f 要写到最后
⑧-p:表示使用源文件的属性,压缩前什么属性压缩后还什么属性--不常用
⑨-P:表示可以使用绝对路径(不常用)
10.--exclude filename:表示在打包或压缩时,不要将 filename文件包括在内(不常用),还可以排除目录。 如:tar -cvf test.tar --exclude test5 test——打包目录test 为test.tar 但除开test目录下的test5;当要排除多个时,tar cvf 123.tar
--exclude a.txt --exclude b.txt 123/
使用 -tf 查看包或压缩包的文件列表
使用tar打包后,原文件不会消失,而且会覆盖当前已经存在的文档或者目录。---解压后是压缩前的目录名字
打包的同时使用gzip压缩
使用选项 -c
zvf 可以使用gzip进行压缩;使用 -
zxvf可以对 .tar.gz格式的压缩包进行解压
打包的同时使用bzip2压缩
使用选项 -c
jvf 可以使用gzip进行压缩;使用 -
jxvf可以对 .tar.gz格式的压缩包进行解压
4.使用zip压缩
可以压缩目录和文件,
但压缩目录时,需要指定目录下的文件
zip 【压缩后的压缩包名】【压缩的文件或目录】:如果没有zip命令,先用 yum install -y zip 进行安装
当需要压缩的目录下还有二级目录甚至更多级目录时,如果想要一并压缩二级目录下的文件,则必须加上
-r 选项;zip -r dir.zip dir/
解压:unzip 压缩文件名,如果没有unzip命令,则用 yum install -y unzip 进行安装
5.bzcat命令
对于bzip2,压缩格式的文本文档,可以使用bzcat命令直接查看文档内容
问题1:使用tar打包并压缩的时候,默认压缩级别为几? 想一想如何能够改变压缩级别呢?(提示,tar本身没有这个功能哦,可以尝试拆分打包和压缩)
tar打包压缩时,是按照gzip和bzip2的默认压缩级别来的,gzip工具默认压缩级别为6,bzip2默认压缩级别为9.
改变默认压缩级别可以这样来做,首先tar打包,然后再使用gzip或者bzip2压缩工具来压缩,压缩的时候指定压缩级别。如: tar cvf 1.tar 123/; gzip -2 1.tar