Linux之文件的压缩与打包

概念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将大文件通过一些压缩算法变成小文件。

这源于Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(比如使用gzip bzip2命令)

压缩文件的扩展名大多是:*.gz(使用gzip命令压缩的文件) 、*.bz2(使用bzip2命令压缩的文件) ;而打包文件扩展名为:*.tar(使用tar命令打包的文件)。

若扩展名为:*.tar.gz则表示的是先使用tar打包后,再经过gzip压缩的文件

若扩展名为:*.tar.bz2则表示的是先使用tar命令打包后,再经过bzip2压缩的文件


gzip(选项)(参数)

压缩的时候不会有输出,会将原来的文件filename给删除,替换成filename.gz。只能压缩普通文件(regular file),命令使用举例:如图1

1. gzip /root/anaconda-ks.cfg将root下的XX文件压缩

2. gzip –d/root/anaconda-ks.cfg.gz 解压文件

Linux之文件的压缩与打包

图1(压缩)

bzip2(选项)(参数)

压缩的时候不会有输出,会将原来的文件filename给删除,替换成filename.bz2。如果以前有filename.bz2则不会替换并提示错误(如果想要替换则指定-f选项,例如bzip2 -f filename;如果filename是目录则也提醒错误不做任何操作;如果filename已经是压过的了有bz2后缀就提醒一下,不再压缩,没有bz2后缀会再次压缩。命令使用举例:如图2

1. bzip2 /root/anaconda-ks.cfg压缩文件

2. bzip2 –d /root/anaconda-ks.cfg.bz2解压文件

Linux之文件的压缩与打包

图2(压缩)


tar(选项)(参数)

利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。命令使用举例如图3和图4

tar cvf Zip.tar Zip :将Zip文件打包

Linux之文件的压缩与打包

图3

tar zcvf Zip.tar.gz:(红框)将Zip文件先打包,再用gzip压缩

tar jcvf Zip.tar.bz2:(绿框)将Zip文件先打包,再用bzip2压缩

Linux之文件的压缩与打包

图4

将参数(比如cvf,zcvf)改成x  即解压缩(毕竟c:compress ;x:extract)