1.区分打包和压缩
打包是指将一大堆文件或目录的变成一个总的文件,打包后的文件有一些额外的信息,导致文件变大。压缩则是将一个大的文件通过一些压缩算法变成一个小文件,因此文件变小被压缩。源于Linux中的很多压缩程序只能针对一个文件进行压缩,当你想要压缩一大堆文件时,你就得先借助另外的工具将这一大堆文件先打成一个包,然后再就原来的压缩程序进行压缩。(区别于Windows下的后缀,Linux中的文件后缀名没有意义,Linux中的后缀仅仅只为了方便管理员查看)
2.打包程序:tar
命令选项
c:创建新的tar包
t:列出打包后文档的内容
x:提取tar包中的文件(压缩中称解压)
f filename:要创建的文件名
v:显示处理的详细过程
u:更新包中文件
注意:
(1)选项前可不加-
(2)创建前要检查有没有重命名文件(覆盖且不提示)
(3)要使tar可以打包选定的文件,执行tar的用户必须要能够读取这些文件(操作用户要有r权限)
tar cf file.tar /tmp
仅打包,将目录/tmp下的所有文件或目录打包成file.tar包
tar zcvf file.tar.gz /tmp
打包后,以gzip方式压缩
tar tf file.tar
查看file.tar包中的所有文件或目录
tar xf file.tar
从file.tar包中提取所有文件或目录
tar rf file.tar c
将文件c追加到file.tar包中
生成tar包后可以用其他程序来进行压缩了
3.压缩
为了方便用户在打包解包的同时可以压缩或解压文件,tar提供了一种特殊的功能。这就是tar可以在打包或解包的同时调用其它的压缩程序,比如调用gzip、bzip2等。
tar支持三种不同压缩方式:
gzip: 压缩速度最快,应用最广泛
bzip2: 压缩后的存档文件小,可用性不如gzip
xz: 最新方式,提供最佳的压缩率
z用于gzip压缩: filename.tar.gz
j用于bzip2压缩: filename.tar.bz2
J用于xz压缩: filename.tar.xz
tar zcf file.tar.gz file.tar
将file.tar包gzip方式压缩,压缩后压缩包名为file.tar.gz
tar jcf file.tar.bz2 file.tar
将file.tar包bzip2方式压缩,压缩后压缩包名为file.tar.bz2
tar Jcf file.tar.xz file.tar
将file.tar包xz方式压缩,压缩后压缩包名为file.tar.xz
tar xf file.tar.gz
将file.tar.gz解压到当前目录
tar zxvf file.tar.gz -C /home
将file.tar.gz解压到/home目录下(解压到指定目录下)