tar:
tar是linux等下的打包工具,生成的包通常也用tar作为扩展名,其实tar只是负责打包,不一定有压缩,事实上可以压缩,也可以不压缩,通常你看到xxxx.tar.gz,就表示这个tar包是压缩的,并且使用的压缩算法是GNU ZIP,而xxxx.tar.bz2就表示这个包使用了bzip2算法进行压缩,当然这样的命名只是一种惯例,并非强制。简单地说,tar就仅是打包。
jar:
即Java Archive,Java的包,Java编译好之后生成class文件,但如果直接发布这些class文件的话会很不方便,所以就把许多的class文件打包成一个jar,jar中除了class文件还可以包括一些资源和配置文件,通常一个jar包就是一个java程序或者一个java库。
war:
Web application Archive,与jar基本相同,但它通常表示这是一个Java的Web应用程序的包,tomcat这种Servlet容器会认出war包并自动部署。
他们相同点是都可以把多个文件打包到一个文件,不同点是 jar是个压缩文件,而tar只打包,不压缩,所以tar还要配合其他压缩工具来压缩,比如tar.bz2,tar.gz 之类的就是在tar的基础上进行的压缩格式。
ear:除了包含JAR、WAR以外,还包括EJB组件(扩展名为.Ear,Enterprise Application Archive)包含全部企业应用程序。在这种情形下,一个企业应用程序被定义为多个jar文件、资源、类和Web应用程序的集合。
包含:除了包含JAR、WAR以外,还包括EJB组件。
部署文件:application.xml
服务器:EJB容器(EJB containers)
作用:我们通常是把EJB打成ear包,ear包括jar包,war包还有EJB组件。简单来说,ear包括整个项目。ear属于企业级应用,封装EJB。

tar包:属于打包文件。Lniux系统上的压缩打包工具,可以将多个文件合并为一个文件,打包后的文件后缀为“tar”。简单说tar就是打包;
jar包:属于打包文件。即Java Archive的Java包。Java编译好之后生成class文件,但是如果直接发布这些class文件的不方便,所以就把许多class文件打包为一个jar包。jar包中除了class文件还包括一些资源和配置文件,通常一个jar包就是一个java程序;
war包:属于打包文件。即Web Application Archive,与jar基本相同。但通常表示一个Java的web应用程序的包。
tar.gz包:是压缩文件。经过gzip压缩后的tar文件,形成tar.gz包,扩展名为“xx.tar.gz”;
——————————————————————————————————————-

zip格式

  1. 压缩: zip -r [目标文件名].zip [原文件/目录名]解压: unzip [原文件名].zip
  2. 注:-r参数代表递归

tar格式(该格式仅仅打包,不压缩)

打包:tar -cvf [目标文件名].tar [原文件名/目录名]解包:tar -xvf [原文件名].tar
注:c参数代表create(创建),x参数代表extract(解包),v参数代表verbose(详细信息),f参数代表filename(文件名),所以f后必须接文件名,z:表示 tar 包是被 gzip 压缩过的,所以解压时需要用。

tar.gz格式

方式一:利用前面已经打包好的tar文件,直接用压缩命令。
压缩:gzip -cvf [原文件名].tar解压:gunzip -cvf [原文件名].tar.gz
-c    把压缩后的文件输出到标准输出设备,不去更动原始文件
-r    递归处理,将指定目录下的所有文件及子目录一并处理
-f      强制
-v      详细信息
方式二:一次性打包并压缩、解压并解包
打包并压缩: tar -zcvf [目标文件名].tar.gz [原文件名/目录名] 解压并解包: tar -zxvf [原文件名].tar.gz
注:z代表用gzip算法来压缩/解压


tar.bz2格式

方式一:利用已经打包好的tar文件,直接执行压缩命令:
压缩:bzip2 [原文件名].tar解压:bunzip2 [原文件名].tar.bz2

方式二:一次性打包并压缩、解压并解包
打包并压缩: tar -jcvf [目标文件名].tar.bz2 [原文件名/目录名] 解压并解包: tar -jxvf [原文件名].tar.bz2
注:小写j代表用bzip2算法来压缩/解压。

tar.xz格式

方式一:利用已经打包好的tar文件,直接用压缩命令:
压缩:xz [原文件名].tar解压:unxz [原文件名].tar.xz

方式二:一次性打包并压缩、解压并解包
打包并压缩: tar -Jcvf [目标文件名].tar.xz [原文件名/目录名] 解压并解包: tar -Jxvf [原文件名].tar.xz
注:大写J代表用xz算法来压缩/解压。

tar.Z格式(已过时)

方式一:利用已经打包好的tar文件,直接用压缩命令:
压缩:compress [原文件名].tar解压:uncompress [原文件名].tar.Z

方式二:一次性打包并压缩、解压并解包
打包并压缩: tar -Zcvf [目标文件名].tar.Z [原文件名/目录名] 解压并解包: tar -Zxvf [原文件名].tar.Z
注:大写Z代表用ncompress算法来压缩/解压。另,ncompress是早期Unix系统的压缩格式,但由于ncompress的压缩率太低,现已过时。

jar格式

压缩:jar -cvf [目标文件名].jar [原文件名/目录名]解压:jar -xvf [原文件名].jar
注:如果是打包的是Java类库,并且该类库中存在主类,那么需要写一个META-INF/MANIFEST.MF配置文件,内容如下:
Manifest-Version: 1.0Created-By: 1.6.0_27 (Sun Microsystems Inc.)Main-class: the_name_of_the_main_class_should_be_put_here
然后用如下命令打包
jar -cvfm [目标文件名].jar META-INF/MANIFEST.MF [原文件名/目录名]
这样以后就能用“java -jar [文件名].jar”命令直接运行主类中的public static void main方法了

7z格式

压缩:7z a [目标文件名].7z [原文件名/目录名]解压:7z x [原文件名].7z
注:这个7z解压命令支持rar格式,即:
7z x [原文件名].rar

rar格式

需要安装rarlinux
下载地址 
http://www.rarlab.com/ 
http://www.rarsoft.com/download.htm
压缩:rar a [目标文件名].rar [原文件名/目录名]解压:rar x [原文件].rar unrar -e etc.tar

tar命令选项详解

主选项
c 建立压缩档案
创建新的档案文件。如果用户想备份一个目录或是一些文件,就要选择这个选项。
r 把要存档的文件追加到档案文件的未尾。
例如用户已经作好备份文件,又发现还有一个目录或是一些文件忘记备份了,这时可以使用该选项,将忘记的目录或文件追加到备份文件中。
t:查看内容
列出档案文件的内容,查看已经备份了哪些文件。
u 更新原压缩包中的文件
就是说,用新增的文件取代原备份文件,如果在备份文件中找不到要更新的文件,则把它追加到备份文件的最后。
x:解压
从档案文件中释放文件。
这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。

辅助选项:

b 该选项是为磁带机设定的。 
其后跟一数字,用来说明区块的大小,系统预设值为20(20*512 bytes)。
f 使用档案文件或设备, 
这个选项通常是必选的。切记,这个参数是最后一个参数,后面只能接档案名。
k 保存已经存在的文件。 
例如我们把某个文件还原,在还原的过程中,遇到相同的文件,不会进行覆盖。
m 在还原文件时,把所有文件的修改时间设定为现在。
M 创建多卷的档案文件,以便在几个磁盘中存放。
v 详细报告tar处理的文件信息。如无此选项,tar不报告文件信息。
w 每一步都要求确认。
z 用gzip来压缩/解压缩文件,加上该选项后可以将档案文件进行压缩,但还原时也一定要使用该选项进行解压缩。

解压缩总结

对于.tar结尾的文件
tar -xf all.tar
对于.gz结尾的文件
gzip -d all.gz
gunzip all.gz
对于.tgz或.tar.gz结尾的文件
tar -xzf all.tar.gz
tar -xzf all.tgz
对于.bz2结尾的文件
bzip2 -d all.bz2
bunzip2 all.bz2
对于tar.bz2结尾的文件
tar -xjf all.tar.bz2
对于.Z结尾的文件
uncompress all.Z
对于.tar.Z结尾的文件
tar -xZf all.tar.z