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