EdwardWong
2022/09/25阅读:31主题:姹紫
Linux之打包与压缩
打包与压缩
打包与压缩的区别
打包指的是一个文件或目录的集合,而这个集合被存储在一个文件中,归档文件没有经过压缩,其占用的空间是其中所有文件和目录的总和。
压缩也是一个文件和目录的集合,这个集合也存储在一个文件中,区别在于压缩文件采用了不同的存储方式,使其占有的磁盘空间比集合中所有文件大小的总和要小。
压缩是指利用算法将文件进行处理,以达到保留最大文件信息,而让文件体积变小的目的。基本原理为,通过查找文件内的重复字节,建立一个相同字节的词典文件,并用一个代码表示。由于计算机处理的信息是以二进制的形式表示的,因此压缩软件就是把二进制信息中相同的字符串以特殊字符标记,只要通过合理的数学计算,文件的体积就可以被大大压缩。
打包命令
最常用的打包命令是tar
,使用tar
命令归档的包一般以.tar
结尾。
打包操作
tar [选项] 源文件或目录

-cvf
是习惯用法,-c
可以将多个文件或目录打包,-v
显示打包过程,-f
指明包的文件名。例如tar -cvf anaconda.tar anaconda-ks.cfg
打包压缩目录
压缩命令没有办法直接压缩目录,需要先进行tar
打包,然后用gzip
或bzip2
命令进行压缩。
tar -cvf test.tar /test/
gzip test.tar
解打包操作
tar [选项] 压缩包

解包和打包相比,只是把打包选项-cvf
换成-xvf
。 例如tar -xvf anaconda.tar
此时会把包中的文件解压到当前目录下,如果要指定解压位置,则需要使用-C
选项, 例如tar -xvf test.tar -C /tmp
如果只想查看文件包中有哪些文件,则可以把解打包选项-x
更换为-t
, 例如tar -tvf test.rar
tar命令做打包压缩及解压解包操作
tar
命令是可以同时打包压缩的,用tar
命令同时做打包压缩操作,其基本格式如下:
tar [选项] 压缩包 源文件或目录
两个常用的选项:
-z
: 压缩或解压缩“.tar.gz”格式
-j
: 压缩和解压缩".tar.bz2"格式
tar -zcvf tmp.tar.gz /tmp/
--> 打包压缩为".tar.gz格式"
tar -zxvf tmp.tar.gz
--> 解压缩与解打包操作,也可以使用-C + 目录名
选项用于指定解压位置,-t
选项用于查看压缩包内容
tar -jcvf tmp.tar.bz2 /tmp/
--> 打包压缩为tar.bz2格式
tar -jxvf tmp.tar.bz2
--> 解压缩与解打包.tar.bz2
格式。
压缩命令zip
与解压命令unzip
压缩命令zip
zip
命令类似于windows系统中的winzip
压缩软件。
zip [选项] 压缩包名 源文件或源目录列表

zip
命令可以压缩目录,需要使用-r
选项, -m
选项代表将文件压缩之后,删除原始文件,相当于把文件移到压缩文件中,-v
显示详细的压缩过程信息,-压缩级别
-1表示压缩速度快, -9 表示压缩效果好。
zip test.zip install.log install.log.syslog
解压命令unzip
unzip [选项] 压缩包名

unzip -d /tmp/ ana.zip
--> 将压缩包解压到指定位置。
压缩命令gzip
和解压命令gunzip
得到的拓展名为.gz
压缩命令gzip
gzip [选项] 源文件

对于
gzip
命令,不需要指定压缩之后的压缩包名,只需指定源文件名即可。
在使用
gzip
命令压缩文件的时候,源文件会消失。
保留源文件压缩
使用-c
将压缩数据输出到标准输出中,并保留源文件。

使用
gzip
压缩目录,由于gzip
只会压缩,不会打包,所以对目录不会进行压缩,而只是把目录下的文件进行压缩。

解压缩文件或目录gunzip
等同于gzip -d
命令

gunzip install.log.gz
--> 直接解压缩文件
gunzip -r
选项同样的只能解压缩目录下的文件,但是没有办法解打包, 例如gunzip -r test/
如果我们压缩的是一个纯文本文件,可以直接使用**zcat
命令在不解压缩的情况下查看这个文本文件的内容,如zcat anaconda-ks.cfg.gz
**
压缩命令bzip2
和解压缩bunzip2
命令
bzip
命令同gzip
命令类似,只能对文件进行压缩(解压缩),对目录只能压缩该目录及子目录下的所有文件。 gzip
只是不会打包目录,但是如果使用-r
选项,则可以分别压缩目录下的每个文件;而 bzip2
命令则根本不支持压缩目录,也没有-r
选项。
压缩后的文件名为.bz2
格式
压缩命令bzip2

同gzip
命令,在压缩的同时也会直接删除源文件。如果想保留源文件,可以采用-k
选项,例如bzip2 -k install.log.syslog
,这样源文件和压缩文件都会存在
解压缩命令bunzip2
命令
也可以使用bzip -d
命令直接进行解压

和gz
格式一样,.bz2
格式压缩的纯文本文件也可以在不解压缩的情况下直接查看,使用的命令时bzcat
, 如bzcat install.log.syslog.bz2
.
作者介绍