7.文件打包与解包命令使用

作者:码农 | 发布时间:

1.打包与压缩的概念

打包

  • 打包,也称为归档,指的是一个文件或目录的集合,而这个集合被存储在一个文件中。打包文件没有经过压缩,因此,它占用的空间是其中所有文件和目录的总和。

压缩

  • 和打包文件类似,压缩文件也是一个文件和目录的集合,且这个集合也被存储在一个文件中,但它们的不同之处在于,压缩文件采用了不同的存储方式,使其所占用的磁盘空间比集合中所有文件大小的总和要小。

压缩格式

gzip

以gzip格式压缩或者解压缩文件,是使用最广泛的压缩方式

bzip2

以bzip2格式压缩或解压缩文件,bzip2的压缩率通常比gzip高

xz

使用xz格式压缩或解压缩文件,xz的压缩率通常比bzip2高

2.tar命令

tar—是一种标准的文件打包格式

利用tar命令可将要备份的一组文件和目录打包成一个文件,以便于保存和网络传输。

同时内置了相应的多个选项,以实现对tar文件的压缩或解压,需要时可以从.tar文件中恢复即可

命令格式: tar  [选项]  打包文件名  被打包的源文件或目录列表

                     tar  [选项]  打包文件名  [-C  目标文件夹]

3.创建非压缩的包文件

命令格式: tar  cvf  包文件名  要打包的目录或文件名列表

作用:将指定的一个或多个文件或目录备份生成为一个指定的包文件。

选项

功能

c

创建.tar格式的包文件

v

表示在命令执行时显示详细的提示信息

f  包文件名

用于指定包文件名。

实验1】创建名为my_file.tar的包文件,其内容为用户主目录下的f1、f2和f3。

[root@dyzx ~]# touch  f1  f2  f3

[root@dyzx ~]# tar  cvf   my_file.tar    f1 f2 f3

f1

f2

f3

[root@dyzx ~]#ll

-rw-r--r--. 1 root root     0 5月  25 12:39 f1

-rw-r--r--. 1 root root     0 5月  25 12:39 f2

-rw-r--r--. 1 root root     0 5月  25 12:39 f3

-rw-r--r--. 1 root root 10240 5月  25 12:40 my_file.tar

//省略其他行

4.创建带压缩的包文件

为节省存储空间,通常需要生成压缩格式的tar包文件,tar命令支持三种不同的压缩方式:

命令格式: tar  c [z | j|J] f  压缩包文件名  要备份的目录或文件名

选项

功能

z

调用gzip程序,以gzip格式压缩或解压缩文件。

j

调用bzip2程序,以bzip2格式压缩或解压缩文件。

J

使用xz压缩(.tar.xz)。xz的压缩率通常比bzip2更高。

【实验2】为/etc目录依次创建gzip格式、bzip2格式和xz格式的压缩包文件,并以长格式显示所有为/etc目录创建的包文件,通过查看包文件大小以比较压缩率的大小。

[root@dyzx ~]# tar  czf  /root/my_etc.tar.gz   /etc

[root@dyzx ~]# tar  cjf  /root/ my_etc.tar.bz2  /etc

[root@dyzx ~]# tar  cJf  /root/ my_etc.tar.xz  /etc

[root@dyzx ~]# tar  cvf  /root/ my_etc.tar/etc

[root@dyzx ~]# ls  -l  my_etc*.*

-rw-r--r--. 1 root root 31856640 7月  29 20:00 my_etc.tar

-rw-r--r--. 1 root root  7662112 7月  29 20:23 my_etc.tar.bz2

-rw-r--r--. 1 root root  9089208 7月  29 20:17 my_etc.tar.gz

-rw-r--r--. 1 root root  6132220 7月  29 20:25 my_etc.tar.xz

5.列出包文件中的文件列表

命令格式: tar  t [v]f  包文件名

【实验3】要查询my_file.tar中的文件目录列表的命令为:

[root@dyzx ~]# tar   tf   my_file.tar

f1

f2

f3   

要显示文件列表中每个文件的详细情况,可增加使用v参数:

[root@dyzx ~]# tar  tvf  /root/my_file.tar

-rw-r--r-- root/root         0 2016-07-29 19:52 f1

-rw-r--r-- root/root         0 2016-07-29 19:52 f2

-rw-r--r-- root/root         0 2016-07-29 19:52 f3

命令格式: tar  x [z| j|J][v]f   包文件名   [ -C  目标位置]

在提取压缩过的包文件时,可以省略在创建压缩包文件时使用的同一压缩选项,因为tar命令可以自动判断使用的压缩方式。

【实验4】将/root/my_etc.tar.gz归档文件提取到/tmp/etcbakup目录

[root@dyzx ~]#mkdir  /tmp/etcbakup

[root@dyzx ~]#tar  xf  /root/my_etc.tar.gz  -C  /tmp/etcbakup