天天看点

linux命令--tar

通过SSH访问服务器,难免会要用到压缩,解压缩,打包,解包等,这时候tar命令就是是必不可少的一个功能强大的工具。linux中最流行的tar是麻雀虽小,五脏俱全,功能强大。

首先要弄清两个概念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。

为什么要区分这两个概念呢?这源于Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令)。

linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩。

1.命令格式:

tar[必要参数][选择参数][文件] 

2.命令功能:

用来压缩和解压文件。tar本身不具有压缩功能。他是调用压缩功能实现的

3.命令参数:

必要参数有如下:

-A 新增压缩文件到已存在的压缩

-B 设置区块大小

-c 建立新的压缩文件

-d 记录文件的差别

-r 添加文件到已经压缩的文件

-u 添加改变了和现有的文件到已经存在的压缩文件

-x 从压缩的文件中提取文件

-t 显示压缩文件的内容

-z 支持gzip解压文件

-j 支持bzip2解压文件

-Z 支持compress解压文件

-v 显示操作过程

-l 文件系统边界设置

-k 保留原有文件不覆盖

-m 保留文件不被覆盖

-W 确认压缩文件的正确性

可选参数如下:

-b 设置区块数目

-C 切换到指定目录

-f 指定压缩文件

--help 显示帮助信息

--version 显示版本信息

4.打包用法 

# tar -cf all.tar *.jpg 

这条命令是将所有.jpg的文件打成一个名为all.tar的包。

# tar -rf all.tar *.gif 

这条命令是将所有.gif的文件增加到all.tar的包里面去。

# tar -uf all.tar logo.gif 

这条命令是更新原来tar包all.tar中logo.gif文件。

# tar -tf all.tar 

这条命令是列出all.tar包中所有文件。

  

# tar -xf all.tar 

这条命令是解出all.tar包中所有文件。

 

以上就是tar的最基本的用法。为了方便用户在打包解包的同时可以压缩或解压 

文件,tar提供了一种特殊的功能。这就是tar可以在打包或解包的同时调用其它的压 

缩程序,比如调用gzip、bzip2等。 

  

5.压缩解压用法

1.zip

  linux下提供了zip和unzip程序,zip是压缩程序,unzip是解压程序。它们的参 

数选项很多,这里只做简单介绍,依旧举例说明一下其用法: 

# zip all.zip *.jpg 

  这条命令是将所有.jpg的文件压缩成一个zip包 

# unzip all.zip 

  这条命令是将all.zip中的所有文件解压出来 

2.tar调用gzip解压tar.gz 

  gzip是GNU组织开发的一个压缩程序,.gz结尾的文件就是gzip压缩的结果。与gzip 

相对的解压程序是gunzip。tar中使用-z这个参数来调用gzip。

# tar -zcf all.tar.gz *.jpg 

这条命令是将所有.jpg的文件打成一个tar包,并且将其用gzip压缩,生成一个 

gzip压缩过的包,包名为all.tar.gz 

# tar -zxf all.tar.gz 

这条命令是将上面产生的包解开。 

tips:我最常用的就两种压缩zip和tar.gz,zip就是zip和unzip,tar.gz的解压就是zxvf,压缩就是zcvf。其中zxcv就是键盘左下角的四个,容易记。其中v

3.tar调用bzip2解压tar.bz2

bzip2是一个压缩能力更强的压缩程序,.bz2结尾的文件就是bzip2压缩的结果。 

与bzip2相对的解压程序是bunzip2。tar中使用-j这个参数来调用gzip。下面来举例 

说明一下: 

# tar -cjf all.tar.bz2 *.jpg 这条命令是将所有.jpg的文件打成一个tar包,并且将其用bzip2压缩,生成一个 

bzip2压缩过的包,包名为all.tar.bz2 

# tar -xjf all.tar.bz2 

这条命令是将上面产生的包解开。 

4.tar调用compress解压tar.Z

compress也是一个压缩程序,但是好象使用compress的人不如gzip和bzip2的人 

多。.Z结尾的文件就是bzip2压缩的结果。与 compress相对的解压程序是uncompress 

。tar中使用-Z这个参数来调用compress。下面来举例说明一下: 

# tar -cZf all.tar.Z *.jpg 

这条命令是将所有.jpg的文件打成一个tar包,并且将其用compress压缩,生成 

一个uncompress压缩过的包,包名为all.tar.Z 

# tar -xZf all.tar.Z 

这条命令是将上面产生的包解开 

有了上面的知识,你应该可以解开多种压缩文件了,下面对于tar系列的压缩文 

件作一个小结: 

1)对于.tar结尾的文件 

tar -xf all.tar 

2)对于.gz结尾的文件 

  gzip -d all.gz 

  gunzip all.gz 

3)对于.tgz或.tar.gz结尾的文件 

  tar -xzf all.tar.gz 

  tar -xzf all.tgz 

4)对于.bz2结尾的文件 

  bzip2 -d all.bz2 

  bunzip2 all.bz2 

5)对于tar.bz2结尾的文件 

  tar -xjf all.tar.bz2 

6)对于.Z结尾的文件 

  uncompress all.Z 

7)对于.tar.Z结尾的文件 

  tar -xZf all.tar.z 

继续阅读