通过SSH访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候tar命令就是是必不可少的一个功能强大的工具。linux中最流行的tar是麻雀虽小,五脏俱全,功能强大。
tar 命令可以为linux的文件和目录创建档案。利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。 tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件 或将几个文件组合成为一个文件以便于网络传输是非常有用的。
首先要弄清两个概念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。
为什么要区分这两个概念呢?这源于Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令)。
linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩。
一、tar语法
语法:tar [主选项+辅选项] 文件或目录
使用该命令时,主选项必须有,它告诉tar要做什么事情,辅选项是辅助使用的,可以选用。
主选项:【一条命令以下5个参数只能有一个】
-c: --create 新建一个压缩文档,即打包
-x: --extract,--get解压文件
-t: --list,查看压缩文档里的所有内容
-r:--append 向压缩文档里追加文件
-u:--update 更新原压缩包中的文件
辅助选项:
-z:是否同时具有gzip的属性?即是否需要用gzip压缩或解压?一般格式为xxx.tar.gz或xx.tgz
-j:是否同时具有bzip2的属性?即是否需要用bzip2压缩或解压?一般格式为xx.tar.bz2
-v:显示操作过程!这个参数很常用
-f:使用文档名,注意,在f之后要立即接文档名,不要再加其他参数!
-C:切换到指定目录
--exclude FILE:在压缩过程中,不要将FILE打包
二、使用实例
1、打包
将img1和img2两个文件夹打包成img.tar,仅打包不压缩:
tar -cvf img.tar img1 img2
将img1和img2两个文件夹打包成img.tar.gz,打包后,以gzip压缩:
tar -zcvf img.tar.gz img1 img2
将img1和img2两个文件夹打包成img.tar.bz2,打包后,以bzip2来压缩:
tar -jcvf img.tar.bz2 img1 img2
2、不解压的情况下查看
查看img.tar中的所有内容:
tar -tf img.tar
查看img.tar.gz的所有内容,加-v参数查看详细信息,-z可有可无:
tar -tf img.tar.gz(tar -ztvf img.tar.gz)
查看img.tar.bz2内容,加-v参数查看详细信息,-j可有可无:
tar -tf img.tar.bz2 (tar -jtvf img.tar.bz2)
3、解压
将img.tar减压到temp目录:
tar -xf ../img.tar temp
只减压img.tar中的img1(解压到当前目录):
tar -xf ../img.tar img1
4、更新
tar -cf img.tar img1 img2,给img1增加了一张照片,现在用下面命令更新img.tar:
tar -uf img.tar img1
5、追加
tar -cf img.tar img1 img2,img.tar里追加一个文件夹img3:
tar -rf img.tar img3
6、-C参数
-C(大C参数很有用,改变文件目录,多层时用) -C, --directory=DIR change to directory DIR
使用了-C参数改变目录为-C后面 目录,不管是在打包还是解压都很有用。
用法:tar temp.tar file -C fileDir
把temp目录及其下面的内容打包成img.tar:
tar -cf img.tar * -C temp
解压img.tar到当前目录下的temp目录:
$ tar -xf img.tar -C temp
三、解压方法总结
1、*.tar 用 tar –xvf 解压
2、*.gz 用 gzip -d或者gunzip 解压
3、*.tar.gz和*.tgz 用 tar –xzf 解压
4、*.bz2 用 bzip2 -d或者用bunzip2 解压
5、*.tar.bz2用tar –xjf 解压
6、*.Z 用 uncompress 解压
7、*.tar.Z 用tar –xZf 解压
8、*.rar 用 unrar x 解压
9、*.zip 用 unzip 解压