序言:
在开发中,好多时侯会碰到个别文件要进行压缩的操作,例如文件较大不便捷传输的时侯,可能会考虑对文件进行压缩,以减轻文件传输的时间。
例如在网路中传输文件的时侯,还会考虑先将文件进行压缩,然后传输压缩的文件,这样可以降低文件传输所须要的带宽和时间,在网路接收到文件以后再解压,就可以得到文件了。
文件的压缩有两种形式:有损压缩和无损压缩。有损压缩会对文件的数据有一定的破坏,通常对于重要的文件我们不会考虑这样的方法。无损压缩不会影响文件,所以对于压缩我们最先考虑的是使用无损压缩的形式。
1、单个文件压缩和解压用gzip/bzip2
对单个文件的压缩和解压我们可以使用使用gzip和bzip2进行操作。这两个命令只能用于对单个文件的压缩操作,对于目录和多级目录的压缩是不行的。
2.1、gzip压缩和解压
gzip命令的使用如下:
gzip[选项][完整的文件名]
常用的选项有:
-l(list):列举压缩文件的内容;
-k(keep):在压缩或解压时,保留输入文件;
-d(decompress):将压缩文件进行解压缩;
使用gzip压缩完以后的文件会生成后缀为
.gz
的压缩文件。假如直接使用gzip对某个文件进行压缩,不加任何其他选项的话,压缩完成以后是会删掉掉被压缩的源文件的,加-k选项都会在压缩完成以后仍然保留源文件。gzip的使用示例如下:
1)压缩文件
gzip-k"须要压缩的文件名"//压缩成功后得到了一个.gz结尾的压缩文件
2)查看压缩文件
gzip-l"经过压缩的.gz的文件"
3)解压文件
gzip-kdpwd.1.gz//该压缩文件必须是以.gz结尾的单个文件
2.2、bzip2压缩和解压
bzip2命令的使用如下:
bzip2[选项][完整的文件名]
常用的选项有:
-l(list):列举压缩文件的内容;
-k(keep):在压缩或解压时,保留输入文件;
-d(decompress):将压缩文件进行解压缩;
使用bzip2压缩完以后的文件会生成后缀为
.gz
的压缩文件。bzip2的使用示例如下:
1)压缩文件
bzip2-k"须要压缩的文件名"//压缩成功后得到了一个.bz2结尾的压缩文件
2)查看压缩文件
bzip2-l"经过压缩的.bz2的文件"
3)解压文件
bzip2-kdpwd.1.gz//该压缩文件必须是以.bz2结尾的单个文件
gzip和bzip2都能对单个文件进行压缩,那这两个方法有哪些不同呢?
不同之处在于:
1)
通常情况下,小文件使用gzip来压缩,大文件使用bzip2来压缩;
2)
bzip2比gzip的压缩率更高。
2、目录和多级目录的解压和压缩用tar
对目录以及多级递归的目录的压缩和解压可以使用tar进行操作。常用的tar命令的选项有:
-c(create):表示创建拿来生成文件包。
-x:表示提取,从文件包中提取文件。
-t:可以查看压缩的文件。
-z:使用gzip形式进行处理,它与”c“结合就表示压缩linux系统解压文件,与”x“结合就表示解压缩。
-j:使用bzip2形式进行处理,它与”c“结合就表示压缩linux数据恢复,与”x“结合就表示解压缩。
-v(verbose):详尽报告tar处理的信息。
-f(file):表示文件,前面接着一个文件名。-C解压到指定目录。
使用tar的进行打包压缩的时侯linux学习,是可以选择压缩方法的,这个压缩方法就是上面提及的gzip和bzip2。
可以简单的理解为:tar就是将目录进行打包压缩,至于选择哪些样的压缩文件的形式就要自己指定,对文件的压缩可选gzip和bzip2。
3.1、tar打包linux系统解压文件,用gzip压缩/解压
1)把目录file1压缩、打包为file1.tar.gz文件:
tarczvffile1.tar.gzfile1。
注意:“tar–czvf”与“tarczvf”是一样的。
2)查看压缩文件:
tartvffile1.tar.gz
3)解压文件,可以用-C指定解压到那个目录:
tarxzvffile1.tar.gz//解压到当前所在的目录。
tarxzvffile1.tar.gz-C"解压路径:xxx"//解压到xxx。
3.2、tar打包,用bzip2压缩/解压
1)把目录file1压缩、打包为file1.tar.bz2文件:
tarcjvffile1.tar.bz2file1。
注意:“tar–cjvf”与“tarcjvf”是一样的。
2)查看压缩文件:
tartvffile1.tar.bz2
3)解压文件,可以用-C指定解压到那个目录:
tarxjvffile1.tar.bz2//解压到当前所在的目录。
tarxjvffile1.tar.bz2-C"解压路径:xxx"//解压到xxx。