且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

RHEL6入门系列之十七,打包与压缩

更新时间:2022-09-14 12:24:34

今天主要说一下如何在Linux系统中进行打包和压缩,在这之前先要介绍一个基本命令——du。

du命令——查看目录或文件占用空间的大小

du命令用于统计指定目录或文件所占磁盘空间的大小。
常用选项:
-h,以K、M、G为单位显示统计结果(默认单位为字节)。
如,查看/root/install.log文件的大小
[root@localhost ~]# du -h /root/install.log
52K     /root/install.log
-s,查看目录本身的大小(不加该选项,则会显示指定目录下所有子目录的大小)。
[root@localhost ~]# du -hs /dev
456K    /dev
 
OK,du命令介绍完了,下面回归正题。
 
打包与压缩也属于是系统管理的基本操作,像WinRAR之类的压缩/解压缩软件应是Windows系统中的装机必备软件。在Linux系统中,通过本身的命令就可以完成打包与压缩的操作。
打包,即将许多个文件和目录合并保存为一个整体的包文件,以方便传递或携带。而压缩操作可以进一步降低打包好的包文件所占用的磁盘空间。
Linux中最常用的打包命令为tar。最常用的压缩命令有两个:gzip、bzip2,用gzip制作的压缩文件通常使用扩展名“.gz”,用bzip2制作的压缩文件通常使用扩展名“.bz2”。
bzip2的压缩效率比gzip更高,但是它们都只能针对单个文件进行压缩与解压,所以通常都是先通过tar命令将多个文件或目录打包成一个包文件,然后再通过gzip或bzip2进行压缩,如*.tar.gz和*.tar.bz2就属于这种先打包再压缩的文件。
在实际使用中,一般都是通过tar命令来调用gzip或bzip2进行压缩或解压,而很少去单独使用gzip或bzip2命令。
 
tar命令
 
tar命令本身只能对目录和文件进行打包,而并不进行压缩。
 
1)打包压缩
tar命令进行打包或压缩时的格式为:
tar [选项] 打包或压缩文件名 需要打包的源文件或目录
在使用tar命令时,选项前的“-”可以省略。
 
例:将整个/home目录下的所有文件打包成home.tar。
[root@localhost ~]# tar cvf home.tar /home
命令中用到的选项的含义:
-c,创建.tar格式的包文件。
-v,显示命令的执行过程。
-f,表示使用打包文件。
查看所生成的包文件的大小:
[root@localhost ~]# du -h home.tar
1012K   home.tar
 
例:调用gzip命令将/home目录下的所有文件打包并压缩成home.tar.gz
[root@localhost ~]# tar zcvf home.tar.gz /home
-z,调用gzip来压缩包文件。
查看所生成的压缩文件的大小,可以发现体积大幅缩小。
[root@localhost ~]# du -h home.tar.gz
104K    home.tar.gz
 
例:调用bzip2命令将/home目录下的所有文件打包并压缩成home.tar.gz
[root@localhost ~]# tar jcvf home.tar.bz2 /home
-j,调用bzip2来压缩包文件。
查看所生成的压缩文件的大小,可以发现体积进一步缩小,证明bzip2的压缩效率比gzip要高。
[root@localhost ~]# du -h home.tar.bz2
92K     home.tar.bz2
 
2)解包解压缩
tar命令进行解包或解压缩时的格式为:
tar [选项] 打包或压缩文件名 [-C 目标目录]
 
例:将home.tar.gz解压到当前目录下(执行命令后会在当前目录下创建一个名为home的目录,其中存放解压后的文件)
[root@localhost ~]# tar zxvf home.tar.gz
-x,解开.tar格式的包文件。
 
例:将home.tar.bz2解压到/root/home2目录中。
[root@localhost ~]# mkdir home2
[root@localhost ~]# tar jxvf home.tar.bz2 -C home2
-C,指定解压后文件存放的目的位置(注意,C是大写)。
 
3)查看打包或压缩文件内的内容
如果希望在不解压的情况下查看压缩文件内都包括哪些内容,可以执行命令:
[root@localhost ~]# tar ztvf home.tar.gz | more
-t,显示打包文件中的内容。
由于是用gzip压缩的文件,所以用-z选项调用gzip程序来解压。
如果要查看压缩文件home.tar.bz2文件中的内容,可以执行命令:
[root@localhost ~]# tar jtvf home.tar.bz2 | more
这里同样用-j选项调用bzip2来解压。
 

本文转自 yttitan 51CTO博客,原文链接:http://blog.51cto.com/yttitan/1122797